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在Windows8下获取本机ip地址的方法
Mar 14 Python
python中关于for循环的碎碎念
Jun 30 Python
Python 模拟登陆的两种实现方法
Aug 10 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
python3实现二叉树的遍历与递归算法解析(小结)
Jul 03 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
Jul 03 Python
解析python实现Lasso回归
Sep 11 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
如何理解python中数字列表
May 29 Python
python实现邮件循环自动发件功能
Sep 11 Python
python如何正确使用yield
May 21 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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
php查找任何页面上的所有链接的方法
2013/12/03 PHP
javascript的函数
2007/01/31 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
python 使用get_argument获取url query参数
2017/04/28 Python
python实现两个文件合并功能
2018/04/01 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
幼儿园毕业寄语
2014/04/03 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
商铺门前三包责任书
2014/07/25 职场文书
作文批改评语
2014/12/25 职场文书
社区好人好事材料
2014/12/26 职场文书
2015年父亲节寄语
2015/03/23 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书