异或(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