位运算的一些操作 判断第x位是0还是1 if((a>>x)&1 == 0)//第x位是0 else //第x位是1 将第x位改成1 a | (1<<x); 将x位改成0 a & (~(1<<x)) 取出最右边的1 a & (-a) 删除最右边的1 a & (a-1) ^(异或运算)的规律(不进位相加) a ^ a = 0; a ^ 0 = a; a ^ b ^ c = a ^ c ^ b