2017-06-04 136 views
-2

我有一個非常簡單的問題。爲什麼x^0 = x?

爲什麼XOR'用0編碼時會給出數字本身。

有人可以舉一個例子來舉證。

可以說我有5

5^0==>

我想答案應該是公正的5 XOR'ed 0的最後一位數,但得到的答覆仍然是5

+0

這樣的想法:XOR相當於又多模2每對二進制數字。如果你添加0到一個數字它不會改變 – samgak

回答

0

有什麼,你不明白。請閱讀有關XOR

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

感謝您的幫助。我對另一件事我感到困惑,我讀別的地方。 –

1

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本身。

0

按位操作按位數設置 - 而不是在最後一位。 因此,如果您對32位整數執行按位操作,則所有32位都會受到影響。所以整數50.....0000101 (32 bits)。如果您xor手術後只需要得到的最後一位申請二進制AND1:它

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