Python进制之间的转换
十进制转换为其它进制
- 使用bin(), oct(), hex()函数
bin(32) = '0b100000' oct(32) = '0o40' hex(32) = '0x20' - 使用format, 不建议使用
'{:b}'.format(32) = '100000' '{:o}'.format(32) = '40' '{:x}'.format(32) = '20'
其它进制转换为十进制
- 使用int()函数,第一个参数为相应进制的字符串,加不加0b, 0o, 0x不影响转换结果,第二个参数为进制值,返回int类型
int('0b100000', 2) = 32 int('0o40', 8) = 32 int('0x20', 16) = 32 int('100000',2) = 32 int('40',8) = 32 int('20',16) = 32 - 使用eval()函数, 传入的参数必须指明类型,如0b, 0o, 0x, 不指明默认为十进制
eval('0b100000') = 32 eval('0o40') = 32 eval('0x20') = 32 eval('100000') = 100000 eval('40') = 40 eval('20') = 20 - 使用format,不建议使用
'{:d}'.format(0b100000) = '32' '{:d}'.format(0o40) = '32' '{:d}'.format(0x20) = '32'
非十进制类型之间的转换
转换的时候以十进制为桥梁,注意参数类型
-
二进制到八进制
oct(int('0b100000', 2)) = '0o40' oct(int('100000', 2)) = '0o40' oct(eval('0b100000')) = '0o40' -
八进制到二进制
bin(int('0o40', 8)) = '0b100000' bin(int('40', 8)) = '0b100000' bin(eval('0o40')) = '0b100000' -
二进制到十六进制
hex(int('0b100000', 2)) = '0x20' hex(int('100000', 2)) = '0x20' hex(eval('0b100000')) = '0x20' -
十六进制到二进制
bin(int('0x20', 16)) = '0b100000' bin(int('20', 16)) = '0b100000' bin(eval('0x20')) = '0b100000' -
八进制到十六进制
hex(int('0o40', 8)) = '0x20' hex(int('40', 8)) = '0x20' hex(eval('0o40')) = '0x20' -
十六进制到八进制
oct(int('0x20', 16)) = '0o40' oct(int('20', 16)) = '0o40' oct(eval('0x20')) = '0o40'
本文详细介绍了Python中不同进制间的转换方法,包括十进制转二、八、十六进制,以及各种进制间相互转换的过程。通过使用内置函数如bin(), oct(), hex()和int(),以及eval()函数,展示了如何在Python中实现进制转换。
189

被折叠的 条评论
为什么被折叠?



