问题
Python中如何将int在十进制和二、八、十六进制之间互相转换
解决方案
十进制向二、八、十六进制转换
分别使用bin
、oct
、hex
>>> a = 123
>>> bin(a)
'0b1111011'
>>> oct(a)
'0o173'
>>> hex(a)
'0x7b'
这样转换会有一个前缀0b
、0o
、0x
,如果不想要前缀只想要数值的话,可以使用format
>>> a = 123
>>> format(a, 'b')
'1111011'
>>> format(a, 'o')
'173'
>>> format(a, 'x')
'7b'
二、八、十六进制向十进制转换
直接使用int()
即可,因为int()
的原型是int(x, base=10)
,所以我们只需要指定base
就行了
>>> a = '1111011'
>>> int(a, 2)
123
>>> a = '173'
>>> int(a, 8)
123
>>> a = '7b'
>>> int(a, 16)
123
讨论
如果只是需要在源码中将二、八、十六进制转十进制,实际上只需要写上前缀就可以了,不需要进行转换,数值会自动转换为十进制,例如
>>> a = 0b1111011
>>> print(a)
123
>>> a = 0o173
>>> print(a)
123
>>> a = 0x7b
>>> print(a)
123
来源
Stack Overflow
关注
欢迎关注我的微信公众号:python每日一练
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。