为什么 x^0 = x?

Why is x^0 = x?

我有一个很简单的问题。

为什么用 0 XOR 得到数字本身就是数字。

谁能举个例子证明一下。

假设我有号码 5

5^0==>

我想答案应该只是5的最后一位XOR'ed加上0,但答案还是5。

0为假,1为真。

根据定义,异或运算A XOR B是"A or B, but not, A and B"。所以,因为 B 是假的,所以结果将是 A.

此外,XOR truth table shows that it outputs true whenever the inputs differ

Input   Output

A   B   XOR Result
0   0   0
0   1   1
1   0   1
1   1   0

如你所见,无论 A 的值是多少,如果它与 0 进行异或,结果就是该位本身。

所以,正如你所说:

 5 = 101, 0 = 000
 When performing XOR operation on the individual bits:

 101
 000
----
 101  = 5.

因此,X^0 的结果就是 X 本身。

你有什么不明白的。请阅读 XOR

00000101 // = 5
00000000 // = 0
--------
00000101 // = 5

按位运算对数字中的一组位进行操作 - 而不仅仅是最后一位。 因此,如果您对 32 位整数执行一些按位运算,那么所有 32 位都会受到影响。所以整数 50.....0000101 (32 bits)。如果您只需要 xor 操作后的最后一位,请应用二进制 AND1:

<script>
console.log("%i\n",(5^0)&1);
console.log("%i\n",(6^0)&1);
</script>