本文最后更新于 2025年8月14日 星期四 10:51
位运算特性
1 2 3 4 5 6 7 8 9
| x & x = x x | x = x x ^ x = 0
x & 0 = 0 x | 0 = x x ^ 0 = x x & y | x = x x & (y | x) = x
|
常用等价语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| x ^ y == 0 ~x x << 1 | 1 x ^ 1 x & 1 ~(x & 1)
x |= 1 << i; x &= ~(1 << i);
x & (1 << i); x & (-x); x&(x - 1);
x & ~((1 << i) - 1); x & ((1 << i) - 1);
|
“脱裤子放屁”的等价表达式
1 2 3 4 5 6 7 8 9 10 11 12
| -x = ~x + 1 = ~(x - 1) ~x = -x - 1 -(~x) = x + 1 ~(-x) = x - 1 x + y = x - (~y) - 1 = (x ^ y) + 2 * (x & y) = (x | y) + (x & y) = 2 * (x | y) - (x ^ y) x - y = x + ~y + 1 = (x ^ y) - 2 * (~x & y) = (x & ~y) - (~x & y) = 2 * (x & ~y) - (x ^ y) x ^ y = (x | y) - (x & y) x & ~y = (x | y) - y = x - (x & y) ~(x - y) = y - x - 1 = ~x + y x 恒等于 y = (x & y) - (x | y) - 1 = (x & y) + ~(x | y) x | y = (x & ~y) + y x & y = (~x | y) - ~x
|
其他
位运算奇技淫巧
https://blog.gtbcamp.cn/article/bit-operations/