前言
这里主要介绍二进制、十进制、八进制、十六进制之间的相互转换,python中有专门的内置函数来实现进制转换,因此我们不需要自己写。
一、转二进制
>>> bin(10)
'0b1010'
>>> bin(0o12)
'0b1010'
>>> bin(0xa)
'0b1010'
转二进制使用bin()函数,其参数默认为十进制数,八进制数需要加上0o标识,十六进制数需要加上0x标识。
二、转八进制
>>> oct(10)
'0o12'
>>> oct(0b1010)
'0o12'
>>> oct(0xa)
'0o12'
转八进制使用oct()函数,其参数默认为十进制数,二进制数需要加上0b标识,十六进制数需要加上0x标识。
三、转十六进制
>>> hex(10)
'0xa'
>>> hex(0b1010)
'0xa'
>>> hex(0o12)
'0xa'
转十六进制使用hex()函数,其参数默认为十进制数,二进制数需要加上0b标识,八进制数需要加上0o标识。
注意:以上进制转换的输出都是字符串类型,如若不需要前面的进制标识,只需进行字符串分割即可。例如:hex(10)[2:]。
四、转十进制
>>> int('0b1010', 2)
10
>>> int('1010', 2)
10
>>> int('12', 8)
10
>>> int('0o12', 8)
10
>>> int('0xa', 16)
10
>>> int('a', 16)
10
转十进制使用int()函数,其参数有两个,前者为字符串类型,表示需要转换成十进制的数字,后者为整型,表示转换前的数字为何种进制。由于这里有参数说明转换前的数字是哪种进制,所以0b、0o、0x这些进制标识可加可不加。
来源:oschina
链接:https://my.oschina.net/u/4396512/blog/3318007