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实现class对象转换成json/字典的方法
Mar 11 Python
python3实现暴力穷举博客园密码
Jun 19 Python
Python socket网络编程TCP/IP服务器与客户端通信
Jan 05 Python
python中numpy基础学习及进行数组和矢量计算
Feb 12 Python
python中单下划线_的常见用法总结
Jul 10 Python
Python global全局变量函数详解
Sep 18 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
Sep 17 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 Python
关于python中导入文件到list的问题
Oct 31 Python
10个顶级Python实用库推荐
Mar 04 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
在字符串中把网址改成超级链接
2006/10/09 PHP
php框架Phpbean说明
2008/01/10 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
jquery 可排列的表实现代码
2009/11/13 Javascript
JavaScript之引用类型介绍
2012/08/10 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
js Calender控件使用详解
2015/01/05 Javascript
JavaScript错误处理
2015/02/03 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
node内置调试方法总结
2018/02/22 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
Python获取当前时间的方法
2014/01/14 Python
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
python cv2在验证码识别中应用实例解析
2019/12/25 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
解决margin 外边距合并问题
2019/07/03 HTML / CSS
学习党代会心得体会
2014/09/05 职场文书
2014年物流工作总结
2014/11/25 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
检讨书模板
2015/01/29 职场文书
财务部岗位职责
2015/02/03 职场文书
入党介绍人考察意见
2015/06/01 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS