XOR 位元運算介紹
簡介
XOR 的中文是互斥或的意思,它是一種位元運算子,會單獨對每個位元進行運算,在程式語言中寫作 a ^ b
。詳細介紹可參考:Wiki
真值表
XOR 簡單來說就是兩者相同為 0,不同為 1。
A | B | 輸出 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
特性
XOR 會有以下幾種特性:
A ^ 0 = A
若 A 為 0,0 ^ 0 = 0,若 A 為 1,1 ^ 0 = 1。A ^ A = 0
若 A 為 0,0 ^ 0 = 0,若 A 為 1,1 ^ 1 = 0。A ^ B = B ^ A
若 A 為 0,B 為 0,0 ^ 0 = 0 ^ 0 = 0。
若 A 為 0,B 為 1,0 ^ 1 = 1 ^ 0 = 1。
若 A 為 1,B 為 0,1 ^ 0 = 0 ^ 1 = 1。
上面這些都是以位元為單位來運算的,但其實對於十進位的數字也是通用的,有興趣的可以自己把十進位的數字轉為二進位來做就會明白了。
實際應用
LeetCode - 136 就是一個經典的 XOR 題目,詳細解法可參考本篇文章:LeeCode - 136 解題紀錄。
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Larry's notes!
評論