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

the*_*ame 4 boolean-logic xor

例如,假设我有x XOR y = y XOR x = z.有可能有类似的东西a XOR b = z吗?

Jam*_*mes 10

简短回答:是的

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

它有真相表:

A B  Q
0 0  0
0 1  1
1 0  1
1 1  0
Run Code Online (Sandbox Code Playgroud)

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

113 = 01110001
42  = 00101010
XOR = 01011011 = 91
Run Code Online (Sandbox Code Playgroud)

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

97  = 01100001
58  = 00111010
XOR = 01011011 = 91
Run Code Online (Sandbox Code Playgroud)

所以是的,再次......


PP.*_*PP. 5

是.

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

所以组合完全有可能a ^ b = y = z.

事实上,对于每一个a存在b这样a ^ b = z.为了计算,b = z ^ a.

请注意,XOR是可交换的:这意味着x ^ y= y ^ x.