Python operator.xor的奇怪行为

dsa*_*ton 4 python xor bitwise-operators

我正在研究加密拼图,我需要使用独占或两个二进制数字(我operator在Python中使用该包).如果我运行operator.xor(1001111, 1100001),例如我得到非常奇怪的输出2068086.为什么不返回0101110或至少101110

小智 9

因为Python没有将其视为二进制数.而是使用:

operator.xor(0b1001111, 0b1100001)
Run Code Online (Sandbox Code Playgroud)


Hun*_*rco 7

计算出的答案是使用您提供的十进制值,而不是二进制外观.你真正要问的是......

1001111 ^ 1100001
Run Code Online (Sandbox Code Playgroud)

当你的意思是79 ^ 97.而是尝试使用二进制文字如此...

0b1001111 ^ 0b1100001
Run Code Online (Sandbox Code Playgroud)

请参阅如何在Python中表达二进制文字?欲获得更多信息.