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之集合的关系
Sep 24 Python
零基础写python爬虫之HTTP异常处理
Nov 05 Python
python实现获取客户机上指定文件并传输到服务器的方法
Mar 16 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
深入理解python中的select模块
Apr 23 Python
Python AES加密实例解析
Jan 18 Python
python kmeans聚类简单介绍和实现代码
Feb 23 Python
python版大富翁源代码分享
Nov 19 Python
python多进程读图提取特征存npy
May 21 Python
解决Keras使用GPU资源耗尽的问题
Jun 22 Python
python脚本第一行如何写
Aug 30 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
Feb 06 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和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
python正则分组的应用
2013/11/10 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
Python实现股市信息下载的方法
2015/06/15 Python
PyQt5每天必学之布局管理
2018/04/19 Python
Django Rest framework之认证的实现代码
2018/12/17 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
HTML5 Canvas 起步(1) - 基本概念
2009/05/12 HTML / CSS
美国性感女装网站:bebe
2017/03/04 全球购物
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
工程承包协议书
2014/04/22 职场文书
出国留学计划书
2014/04/27 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
关于工作经历的证明书
2014/10/11 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
关于Python中进度条的六个实用技巧分享
2022/04/05 Python