異或(exclusive or, XOR)


異或就是只有一個為真,才為真。數學符號是 '⊕' ,計算機符號是'xor',在編程語言中一般用'^'表示,運算法則如下:

1^0=1

1^1=0

0^0=0

可見,異或可以實現按位翻轉。例如101^111=010,用十進制表達就是5^7=2。異或運算滿足的法則包括:

1.歸零律,任何數異或自己相當於把自己置零,a^a=0

2.恆等律,任何數異或0都等於自己,a^0=a

3.交換律,a^b=b^a

4.結合律,(a^b)^c=a^(b^c)

5.自反,a^b^a=b

6.d=a^b^c => a=d^b^c

 

除了按位翻轉外,異或的主要應用還包括:

1.無需使用臨時變量的實現兩個值的交換

a=a^b

b=a^b

a=a^b

2.尋找數組中不重復的數

例如leetcode 136,給定一個非空整數數組,除了某個元素只出現一次外,其余每個元素均出現兩次,只要把整個數組中的數依次做異或運算,就能夠找到只出現了一次的元素了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM