C++;按位异或^ C++ +XOR是^。因此,如果我: a ^ b

C++;按位异或^ C++ +XOR是^。因此,如果我: a ^ b,c++,c,bitwise-operators,xor,C++,C,Bitwise Operators,Xor,它应该执行XOR b 但是,当值为4246661时,则为0 4246661 ^ 0 当它真的应该是0时,它会打印:4246661 编辑:哇,我正在使用一个在线xor计算器,它给了我奇怪的结果。。对不起 我遗漏了什么吗?用0对任何数字进行异或运算都会得到相同的数字 按位: 1或0=1 1提高采收率0=1 1提高采收率1=0 编号: nbr或0=nbr nbr EOR 0=nbr如果两个值中的一个且仅一个为1,则异或结果为1,表示: 0或0是0 0或1是1 1或0是1 1或1是0 所以,(4

它应该执行XOR b

但是,当值为4246661时,则为0

4246661 ^ 0 
当它真的应该是0时,它会打印:4246661

编辑:哇,我正在使用一个在线xor计算器,它给了我奇怪的结果。。对不起


我遗漏了什么吗?

用0对任何数字进行异或运算都会得到相同的数字

按位:

1或0=1

1提高采收率0=1

1提高采收率1=0

编号:

nbr或0=nbr


nbr EOR 0=nbr

如果两个值中的一个且仅一个为1,则异或结果为1,表示:

  • 0或0是0
  • 0或1是1
  • 1或0是1
  • 1或1是0
所以,(
4246661 XOR 0
),也就是(
0b1000000110010000101 XOR 0b0
)结果是
0b1000000110010000101
…这里没有问题


Anything
XOR 0结果是
Anything

为什么您认为它应该是0?您可能想重新了解XOR的具体功能。它应该是4246661。现在如果它是
&
(按位和)它应该是0…如果你想它是
0
,你必须
XOR
它本身-这是一种众所周知的“廉价”CPU寄存器归零方法。是的,一种数百万人已经使用了几十年的语言的基本数学运算被打破了。不可能是你误解了它。:-)C++按位异或不工作?XOR在哪种语言中像您期望的那样工作?