python中使用XOR的二进制操作是如何工作的?

2024-05-12 14:18:39 发布

您现在位置:Python中文网/ 问答频道 /正文

对于python中的xor运算符(^),我有以下问题。我有两个二进制数,让a = 10100111和{}。当我使用xor运算符时

print (10000000 ^ 10100111) 

我得到的结果是166671而不是00100111。但是,当我使用

^{pr2}$

我得到的结果是二进制的1(001)。即使我使用

print int(a) ^ int(b) 

我还是得到了166671的结果。在

问题:

  1. 为什么我得到166671的结果而不是00100111的二进制结果?

  2. 当我使用100^101时,为什么会得到合适的结果?

我运行的是python2.7.2版。在


Tags: 二进制运算符intprintxorpr2
2条回答

您使用的是十进制数,而不是二进制。在

10000000^10100111

在二进制中是

^{pr2}$

等于

0b101000101100001111

或者十进制

166671 

100 ^ 101

在二进制中是

0b1100100 ^ 0b1100101

是什么

0b1

或者,以十进制表示(恰好与本例中的二进制相同)

1

100是十进制的100(二进制中的1100100)。使用0bnnn形式表示二进制。在

>>> 0b100
4
>>> 100
100
>>> 0b100 == 100
False

^{pr2}$

相关问题 更多 >