我有一個非常簡單的問題。爲什麼x^0 = x?
爲什麼XOR
'用0編碼時會給出數字本身。
有人可以舉一個例子來舉證。
可以說我有5
5^0==>
我想答案應該是公正的5 XOR'ed
0的最後一位數,但得到的答覆仍然是5
我有一個非常簡單的問題。爲什麼x^0 = x?
爲什麼XOR
'用0編碼時會給出數字本身。
有人可以舉一個例子來舉證。
可以說我有5
5^0==>
我想答案應該是公正的5 XOR'ed
0的最後一位數,但得到的答覆仍然是5
有什麼,你不明白。請閱讀有關XOR
00000101 // = 5
00000000 // = 0
--------
00000101 // = 5
感謝您的幫助。我對另一件事我感到困惑,我讀別的地方。 –
0是假的,1是真的。
根據定義,異或運算A XOR B
是「A或B,但不是A和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本身。
按位操作按位數設置 - 而不是在最後一位。 因此,如果您對32位整數執行按位操作,則所有32位都會受到影響。所以整數5
是0.....0000101 (32 bits)
。如果您xor
手術後只需要得到的最後一位申請二進制AND
與1
:它
<script>
console.log("%i\n",(5^0)&1);
console.log("%i\n",(6^0)&1);
</script>
這樣的想法:XOR相當於又多模2每對二進制數字。如果你添加0到一個數字它不會改變 – samgak