前言:本文用于记录一些位运算常用技巧
与、或、异或和取反
与运算的符合是 & ,运算规则是:对于每个二进制位,当两个数对应的位都为 1 时,结果才为 1 ,否则结果为 0。
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
或运算的符合是 | ,运算规则是:对于每个二进制位,当两个数对应的位都为0时,结果才为0,否则结果位1。
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
异或运算的符合是 ⊕(在代码中用 ^ 表示异或) ,运算规则是:对于每个二进制位,当两个数对应的位相同时,结果为 0,否则结果为 1。
0 ⊕ 0 = 0
0 ⊕ 1 = 1
1 ⊕ 1 = 1
1 ⊕ 1 = 0
取反运算的符合是 ~ ,运算规则是:对一个数的每个二进制位进行取反操作,0 变成 1 ,1 变成 0。
~0 = 1
~1 = 0
位运算常用技巧
- 幂等率:a & a = a , a | a = a(注意异或不满足幂等率)
- 异或运算性质:a ⊕ 0 = a,a ⊕ a = 0