python 进制转换 int、bin、oct、hex的原理
原理
十进制转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)=>1000001000=>208(十六进制)
1314=>10100100010(二进制)=>2442(八进制)=>522(十六进制)
八进制或者十六进制转成十进制
十六进制=>二进制=>十进制
522=>010100100010=>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)))#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'objectcannotbeinterpretedasaninteger
其他进制转换成十进制
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'tconvertnon-stringwithexplicitbase print(int('10',2))#2 #print(int('22',2))#ValueError:invalidliteralforint()withbase2:'22' print(int('0xaaa',16))#2730 print(int('0b111',2))#7 print(int('0o1237',8))#671
到此这篇关于python进制转换int、bin、oct、hex的原理的文章就介绍到这了,更多相关python进制转换内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。