异或(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,给定一个非空整数数组,除了某个元素只出现一次外,其余每个元素均出现两次,只要把整个数组中的数依次做异或运算,就能够找到只出现了一次的元素了。

posted @   南风小斯  阅读(3079)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示