C ++ Xor是^。所以,如果我:
a ^ b
它应该做XOR b
但是当值为4246661 0时
4246661 ^ 0
它打印:4246661,当它真的应该是0。
编辑:哇,我离开了一个在线xor计算器,它给了我奇怪的结果..抱歉我错过了什么吗?
答案 0 :(得分:6)
如果两个值中只有一个是1,则XOR结果为1,表示:
所以,(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