python 进制转换 int、bin、oct、hex的原理


Posted in Python onJanuary 13, 2021

原理

十进制转n进制都可以使用倒除法:对十进制进行除n的运算,直到商为0为止,然后将各个步骤中得到的余数倒着写出来.
n进制转十进制:(例子:二进制转十进制)
101001 => 2^5 + 2^3 + 1 = 32 + 8 + 1 = 41
10111 => 2^4 + 2^2 + 2 + 1 = 16 + 4 + 2 +1 = 23
同样类推一下,n进制转十进制就是将2为底换成n为底就好了


还有其他方法,比如使用中间二进制,
例如,将十进制转成八进制或者十六进制,先转成二进制再转成八进制或者十六进制
十进制 => 二进制 => 十六进制
520 => 1000001000 (512+8) => 10 0000 1000 => 208(十六进制)
1314 => 10100100010(二进制) => 2442(八进制) => 522(十六进制)


八进制或者十六进制转成十进制
十六进制 => 二进制 => 十进制
522 => 0101 0010 0010 => 1024 + 256 + 32 + 2 = 1280+34 = 1314(十进制)

十进制转其他进制的数

使用内置函数bin、oct、hex可以将整数转换成对应的二进制、八进制、十六进制;
注意只能转换整数,返回的数据是一个字符串类型

a = 12# 默认数字都是十进制
print(a)# 12
b = 0b0101010111#以0b开头的是二进制数,默认也是十进制输出
print(b)# 343
c = 0o33# 以0o开头的是八进制数
print(c)# 27
d = 0x24# 以0x开头的是十六进制数
print(d)# 36
a = 12 # 12是十进制数
print(bin(a))# 0b1100 使用bin内置函数可以将数字转换为二进制
print(oct(a))# 0o14 使用oct内置函数可以将数字转换为八进制
print(hex(a))# 0xc 使用hex内置函数可以将数字转换为十六进制
print(type(bin(a)))# <class 'str'>
print(bin(0o1111))# 0b1001001001
print(bin(0xff))# 0b11111111
print(oct(0xff))# 0o377
print(hex(0b00011111)) # 0x1f
# print(bin(1.12))
# print(oct(1.12))
# print(hex(1.12))
# TypeError: 'float' object cannot be interpreted as an integer

其他进制转换成十进制

int函数的使用
int(x, base=10)base是进制,默认是十进制
int函数常用来将其他类型的数据转换成整型
注意
x 有两种:str / int
1、若 x 为纯数字,就不能给base传参数,否则就会报错
2、若 x 为 str,则可以给base传参,不传就默认是10;给base传什么参数就认为此字符串为什么进制的数,然后把它转换成十进制的数,但字符串里的数必须符合该进制规范,否则会报错

print(int(3.112))# 3
# print(int(3.112,8))# TypeError: int() can't convert non-string with explicit base
print(int('10',2))# 2
# print(int('22',2))# ValueError: invalid literal for int() with base 2: '22'
print(int('0xaaa',16))# 2730
print(int('0b111',2))# 7
print(int('0o1237',8))# 671

到此这篇关于python 进制转换 int、bin、oct、hex的原理的文章就介绍到这了,更多相关python 进制转换 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python version 2.7 required, which was not found in the registry
Aug 26 Python
Python中的pprint折腾记
Jan 21 Python
使用Pyrex来扩展和加速Python程序的教程
Apr 13 Python
python 计算两个日期相差多少个月实例代码
May 24 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
python3实现zabbix告警推送钉钉的示例
Feb 20 Python
python-地图可视化组件folium的操作
Dec 14 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
Python 使用dict实现switch的操作
Apr 07 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 Python
Python机器学习应用之工业蒸汽数据分析篇详解
Jan 18 Python
python pillow库的基础使用教程
Jan 13 #Python
用python-webdriver实现自动填表的示例代码
Jan 13 #Python
python 装饰器的基本使用
Jan 13 #Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 #Python
浅谈Selenium+Webdriver 常用的元素定位方式
Jan 13 #Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 #Python
基于python+selenium自动健康打卡的实现代码
Jan 13 #Python
You might like
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
用js实现计算加载页面所用的时间
2010/04/02 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
React复制到剪贴板的示例代码
2017/08/22 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
js实现鼠标拖曳效果
2020/12/30 Javascript
Python中decorator使用实例
2015/04/14 Python
Python数组遍历的简单实现方法小结
2016/04/27 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
python 创建一个空dataframe 然后添加行数据的实例
2018/06/07 Python
python Web开发你要理解的WSGI &amp; uwsgi详解
2018/08/01 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
毕业自我鉴定
2013/11/05 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
司法助理专业自荐书
2014/06/13 职场文书
股东合作协议书
2014/09/12 职场文书
创卫工作总结2015
2015/04/22 职场文书
教师个人教学反思
2016/02/23 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫