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通过imaplib模块读取gmail里邮件的方法
May 08 Python
Python函数中*args和**kwargs来传递变长参数的用法
Jan 26 Python
python实现发送邮件功能代码
Dec 14 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
Django自定义过滤器定义与用法示例
Mar 22 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
python matplotlib绘制三维图的示例
Sep 24 Python
Python爬虫之爬取最新更新的小说网站
May 06 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 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
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
[02:05]2014DOTA2西雅图国际邀请赛 BBC第二天小组赛总结
2014/07/11 DOTA
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
python版学生管理系统
2018/01/10 Python
pandas series序列转化为星期几的实例
2018/04/11 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
华润集团网上药店:健一网
2016/09/19 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
综合实践活动方案
2014/02/14 职场文书
学生保证书范文
2014/04/28 职场文书
销售岗位职责范本
2014/06/12 职场文书
要账委托书范本
2014/09/15 职场文书
公民代理授权委托书
2014/09/24 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
2015年社区工作总结
2015/04/08 职场文书
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis