bin(),oct()和hex()

2019年10月16日 / 12次阅读 / Last Modified 2019年10月16日
内置函数

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 --

本文链接:https://www.pynote.net/archives/1335

留言区

《bin(),oct()和hex()》有1条留言

电子邮件地址不会被公开。 必填项已用*标注

  • 麦新杰

    由于python不是面对硬件的编程工具,这几个函数在负数参数的情况下,负号和数字是分开处理的。要想获得负数的底层硬件表示,需要使用别的方法。 [回复]


前一篇:
后一篇:

More

麦新杰的Python笔记

Ctrl+D 收藏本页


©Copyright 麦新杰 Since 2019 Python笔记

go to top