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用于url解码和中文解析的小脚本(python url decoder)
Aug 11 Python
Python中用pycurl监控http响应时间脚本分享
Feb 02 Python
简单介绍Python下自己编写web框架的一些要点
Apr 29 Python
Python中用于检查英文字母大写的isupper()方法
May 19 Python
Python二分查找详解
Sep 13 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
浅谈Python 函数式编程
Jun 20 Python
python将数据插入数据库的代码分享
Aug 16 Python
细说NumPy数组的四种乘法的使用
Dec 18 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 Python
python for循环赋值问题
Jun 03 Python
详解Python生成器和基于生成器的协程
Jun 03 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面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
一段实用的php验证码函数
2016/05/19 PHP
功能强大的php分页函数
2016/07/20 PHP
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
Python 实现简单的客户端认证
2020/07/29 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
美国受信赖的教育产品供应商:Nest Learning
2018/06/14 全球购物
环境工程大学生个人的自我评价
2013/10/08 职场文书
幼儿园秋游感想
2014/03/12 职场文书
负责人任命书范本
2014/06/04 职场文书
国际贸易求职信
2014/07/05 职场文书
自我工作评价范文
2015/03/06 职场文书
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL