python内置的3个将int转换成2进制,8进制和16进制字符串的函数,bin(),oct()和hex()。注意着3个函数的返回值都是string。
>>> a = 123
>>> bin(a)
'0b1111011'
>>> oct(a)
'0o173'
>>> hex(a)
'0x7b'
>>>
>>> b = -321
>>> bin(b)
'-0b101000001'
>>> oct(b)
'-0o501'
>>> hex(b)
'-0x141'
还有个细节需要注意,bin,oct,hex这三个函数返回的字符串,除去了0b,0o和0x前缀,剩下的字符串并不都是双数!比如bin函数返回的并不都是8个bit的倍数,再比如hex(b),是-0x141,而我们有的时候喜欢按字节对齐,即显示-0x0141。如果需要对齐,就需要自己去修改这3个函数的返回值,也很简单啦。
bin,oct,hex这3个函数返回的字符串,都是python的合法的数字表达式。请看下面测试代码:
>>> d = 0b11011101
>>> d
221
>>> e = 0o123
>>> e
83
>>> f = 0x789
>>> f
1929
>>>
>>> g = -0x12
>>> g
-18
>>> h = eval(bin(123))
>>> h
123
>>> k = eval(oct(123))
>>> k
123
>>> p = eval(hex(-123))
>>> p
-123
因此,源代码中可以直接写2进制,8进制,16进制,在需要的时候,有的时候可以增加代码的可读性。0b,0o和0x,也可以大写,0B,0O和0X,一样的。
-- EOF --