Python和按位操作

时间:2015-09-20 19:31:13

标签: python bitwise-operators

Python如何进行按位操作?它是从LSB到MSB,还是相反? Python如何对具有不同位数的数字进行操作?例如,假设我有:

A = 0000 1000 1111 1001 0101
B = 0110 1010
C = (A & B) is not 0

如果Python在每个上从MSB开始操作,这将评估为True,但如果它从每个LSB开始操作,它将评估为False。

1 个答案:

答案 0 :(得分:2)

以二进制形式输入数字前置0b(并省略空格),就像使用0x表示十六进制数字一样:

A = 0b00001000111110010101
B = 0b01101010
C = (A & B) is not 0

你可以通过打印出来来检查python如何解释它(例如二进制和十六进制):

print('{0:b} {0:x}'.format(A))
# 1000111110010101 8f95

如你所见:它从LSB开始。

在将整数与is"is" operator behaves unexpectedly with integers进行比较时也会注意到python怪癖。因此==可能是更安全的选择。