Common hacks

消除n的二进制中的最后一个1: a = n & (n-1)
求n的二进制中最后一个1对应的值: b = n&(-n) , 注意 n == a + b
判断一个整数是否是2的幂: c = n and not (n & (n - 1))
判断两个整数是否异号: d = ((x ^ y) < 0)

References

Bit Twiddling Hacks by Sean Eron Anderson