异或XOR的再理解以及在leetcode上的应用

本文详细介绍了异或XOR的概念,包括其与AND、OR的对比,以及异或的性质。重点讨论了异或在LeetCode题目中的应用,如找出两个数有差异的位、找到出现一次的数、交换两个整数的值。还探讨了格雷码(Gray code)的生成及其与异或的关系。文章通过具体的例子和链接提供了深入的理解和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异或

0和0异或产生0,0和1; 1和0异或得到1;1和1异或得到0。
简单总结:不同的产生1;否则0。代表的是差别。 补充AND,OR。

AND

0&0=0
1&1=1
0&1=0
只有两个同时满足才能满足。

OR

0|0=0
1|1=1
0|1=1
只要有一个满足就满足。

再理解:异或的操作,如同生孩子,只有男女之间才能满足结果;其他的无法满足。

汇总

&   -  bitwise and
|   -  bitwise or
^   -  bitwise xor
~   -  bitwise not
<<  -  bitwise shift left
>>  -  bitwise shift right

性质

异或运算的简单性质:
1. a ⊕ a = 0
2. a ⊕ b = b ⊕ a 交换律
3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c; 结合律
4. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.
5. a ⊕ b ⊕ a = b.
6. a ⊕ 0 = a

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值