C ++ Bitwise XOR ^不工作

时间:2015-03-20 20:31:09

标签: c++ c bitwise-operators xor

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

a ^ b

它应该做XOR b

但是当值为4246661 0时

4246661 ^ 0 

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

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

我错过了什么吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

使用0表示异或或任何数字都会产生相同的数字。

按位:

1 OR 0 = 1

1 EOR 0 = 1

1 EOR 1 = 0

带数字:

nbr OR 0 = nbr

nbr EOR 0 = nbr