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中的变量默认是什么类型
Sep 11 Python
matplotlib绘制动画代码示例
Jan 02 Python
详解windows python3.7安装numpy问题的解决方法
Aug 13 Python
python调用动态链接库的基本过程详解
Jun 19 Python
对django views中 request, response的常用操作详解
Jul 17 Python
对python中基于tcp协议的通信(数据传输)实例讲解
Jul 22 Python
Django 创建新App及其常用命令的实现方法
Aug 04 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
Python FFT合成波形的实例
Dec 04 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 Python
什么是Python包的循环导入
Sep 08 Python
Python使用UDP实现720p视频传输的操作
Apr 24 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脚本的10个技巧(5)
2006/10/09 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
golang与PHP输出excel示例
2016/07/22 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
简明json介绍
2008/09/28 Javascript
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
jQuery.extend 函数的详细用法
2012/06/27 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
python生成随机图形验证码详解
2017/11/08 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
计算机个人求职信范例
2014/01/24 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
施工员岗位职责
2014/03/16 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
党支部考察意见范文
2015/06/02 职场文书
安全生产奖惩制度
2015/08/06 职场文书
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
css3 选择器
2022/05/11 HTML / CSS