1 x =x & (x-1) 循环 得到的是x中二进制表示1的个数 与运算只保留都是1的数
2 利用位运算完成加法 x+y
先异或,不考虑进位的加, 然后位与运算,看是否有进位,有进位,左移一位,如此循环,当没有进位的时候就是其和
3 判断一个数是否是2N 次方 !(x &(x-1))
4 与运算取得是相同的一部分
异或运算取得是不相同的一部分,异或两次是本身
X&Y + X^Y>>1 为X+Y和的一半
5 a b 交换
a=a^b ; b=a^b; a=b^a;
6 a b 最大值
int max=(a-b + abs(a-b))/2