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爬虫实战之最简单的网页爬虫教程
Aug 13 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
python3.8 微信发送服务器监控报警消息代码实现
Nov 05 Python
使用Python实现Wake On Lan远程开机功能
Jan 22 Python
TensorFlow自定义损失函数来预测商品销售量
Feb 05 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
详细分析Python垃圾回收机制
Jul 01 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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(2)
2006/10/09 PHP
PHP树的代码,可以嵌套任意层
2006/10/09 PHP
php防攻击代码升级版
2010/12/29 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
2014/04/11 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
Javascript的比较汇总
2016/07/25 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
Python中用max()方法求最大值的介绍
2015/05/15 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
numpy中索引和切片详解
2017/12/15 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
大学生创业计划书的用途
2014/01/08 职场文书
校庆标语集锦
2014/06/25 职场文书
中秋晚会致辞
2015/07/31 职场文书
电力安全学习心得体会
2016/01/18 职场文书
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers