1.二进制,八进制,十六进制转十进制
print(int('1101',2)) #1*2^0+0*2^1+1*2^2+1*2^3
13
print(int('0o226',8)) #6*8^0+2*8^1+2*8^2
150
print(int('0x96',16))#6*16^0+9*16^1
150
2.十进制转化为二进制
用n除以2,得到的商再除以2 直到除到1,然后记录每次得到的余数, 从后往前读。
print(bin(13))
'0b1101'
3.八进制转化为二进制
比如八进制数 (37)8
拆开 3 7
3用二进制表示为 11
7用二进制表示为 111
合起来 即为 11 111
同理 十六进制转二进制
print(bin(0o37)) #0o37 0:阿拉伯数字0 o:八进制表示
'0b11111'
print(bin(0x33))
'0b110011'
4.二进制转八进制
二进制从右边数,3位3位为一组,转为十进制比如:
10 110 011 111
2 6 3 7 对应八进制就是为 (2637)8
同理十六进制,不过此时二进制应该是 从右往左边数,4位4位为一组
101 1001 1111 转为十六进制对应如下:
5 9 f (15)
print(oct(0b10110011111))
'0o2637'
print(hex(0b10110011111))
'0x59f'
4.八进制与十六进制之间转换
第一种:他们之间的转换可以先转成二进制然后再相互转换。
第二种:他们之间的转换可以先转成十进制然后再相互转换。