如果我XOR 2号码,如果数字相同,我只会得到相同的结果吗?

时间:2010-03-20 01:48:35

标签: boolean-logic xor

例如,假设我有x XOR y = y XOR x = z。是否可以使用a XOR b = z

4 个答案:

答案 0 :(得分:8)

简答:是的

答案很长: XOR是一个二进制操作,它适用于各个位,它是可交换的。

它有真值表:

A B  Q
0 0  0
0 1  1
1 0  1
1 1  0

由于数字由这些​​位组成,因此结果将是相同的,只要对于每个位位置,两位具有相同的结果。 例如,取2个8位数字113和42

113 = 01110001
42  = 00101010
XOR = 01011011 = 91

但如果我从左边交换第四位,我得到

97  = 01100001
58  = 00111010
XOR = 01011011 = 91

再次,是的......

答案 1 :(得分:5)

z = y因为x ^ y ^ x = y

因此组合a ^ b = y = z完全可能。

事实上,对于每个a,都存在b a ^ b = z。要计算,b = z ^ a

请注意XOR is commutative:这意味着x ^ y = y ^ x

答案 2 :(得分:4)

是。作为简并证明,对一个数字进行异或运算总是导致0。

答案 3 :(得分:0)

XOR,如果两个参数不同,将返回true,假设参数都是布尔值。这与or不同,如果任一参数为true,则返回true;如果两者都为假,则返回true。