C++ Bitwise XOR ^不工作

Rob*_*b V -2 c c++ xor bitwise-operators

C++ Xor是^.所以,如果我:

a ^ b
Run Code Online (Sandbox Code Playgroud)

它应该做一个XOR b

但是当值为4246661时0

4246661 ^ 0 
Run Code Online (Sandbox Code Playgroud)

它打印:4246661当它真的应该是0.

编辑:哇,我离开了一个在线xor计算器,它给了我奇怪的结果..抱歉

我错过了什么吗?

jpo*_*o38 6

如果一个且两个值中只有一个为1,则XOR结果为1,表示:

  • 0 XOR 0为0
  • 0 XOR 1为1
  • 1 XOR 0为1
  • 1 XOR 1为0

所以,(4246661 XOR 0),这是(0b10000001100110010000101 XOR 0b0)结果是0b10000001100110010000101......这里没问题!

Anything XOR 0的结果是 Anything