二进制位运算是基于二进制数的计算,包括与(&),或(|),非(!),异或。前三种运算我们在平时见的比较多,异或相对比较少,那么它有哪些妙用呢?这篇文章就来讲讲。
异或运算
相同以0,不同为1
同或运算
相同以1,不同以0
这俩概念很容易记混,这里可以异或运算看成无进位相加。无进位的意思就是1+1=2,本来要进一位,现在不进了,该位置的值变成了0。
异或运算的性质
敲黑板,划重点来了
(1) 0 ^ N = N
(2) N ^ N = 0
(3) 满足交换律和结合律:
a ^ b = b ^ a,
(a ^ b ) ^ c = a ^ ( b ^ c )
这几个性质我们用无进位相加看下非常好理解也能记得住。
这里为什么会单独讲异或运算,那当然是因为它很魔性。下面结合几道题,看一下。
语雀合集路径