Python进制数字中位操作

除了一般数字运算,Python也支持C语言中的大多数数学表达式。这包括那些把整数当作二进制位串对待的操作。还可以实现卫衣和布尔操作:

>>> X = 1       # 0001
>>> X << 2      # 左移两位,成了0100,即4
4
>>> X | 2       # 异或(0001 | 0010), 即3
3
>>> X & 1       # 同或(0001 & 0001), 即1
1
>>>

这样的按位进行编码的运算,使我们可以对一个整数进行多个标志位和值进行编码, Python 2.6开始支持二进制和十六进制变得特别有用,它允许我们按照位字符串来编写和查看数字:

>>> X = 0b0001           # 二进制数字
>>> X << 2               # 数字左移2位
4

>>> bin(X << 2)          # 将二进制数字左移的结果以二进制的方式来显示
'0b100'

>>> bin(X | 0b010)       # 将二进制数字异或的结果以二进制的方式来显示
'0b11'

>>> bin(X & 0b1)         # 将二进制数字同或的结果以二进制的方式来显示
'0b1'

>>> X = 0xFF             # 十六进制数字
>>> bin(X)               # 对应的二进制
'0b11111111'

>>> X ^ 0b10101010       # 异或结果
85

>>> bin(X ^ 0b10101010)  # 异或的结果转变成二进制
'0b1010101'

>>> int("1010101", 2)    # 二进制
85

>>> hex(85)              # 十六进制
'0x55'

>>>

 

你可能感兴趣的:(【编程语言】)