位运算那些没用的小技巧
-
消去最后一位的1
x & (x - 1) -
交换两个数
a ^= b; b ^= a; a ^= b; -
检查一个数的奇偶
x & 1 -
求x的绝对值
~(x >> 31) ? a : ~a + 1 -
取两个数的最大值
x ^ ((x ^ y) & -(x < y)) -
取两个数的最小值
y ^ ((x ^ y) & -(x < y)) -
从低位到高位,求n的第m位
(n >> (m-1)) & 1 -
从低位到高位,将n的第m位置0
n & ~(1 << (m-1))
