1 // 判断一个数是否为2的n次幂
2 return !(a & (a-1))
3 // 简单移位操作
4 a<<1 == a*2
5 a>>1 == a/2
6 // 异或操作<相同取反>
7 a^a==0 a^0==a
8 // 把右数第k位变成1
9 a | (1<<(k-1))
10 // 把右数第k位变成0
11 a & (!(1<<(k-1)))
12 // 第k位取反
13 a ^ (1<<(k-1))
判断一个数二进制中1的个数是奇数还是偶数:
x = x ^ (x>>1); x = x ^ (x>>2); x = x ^ (x>>4); x = x ^ (x>>8); x = x & 1; //x==0为偶;相邻性质.