(1)x & (-x) // 结果为保留最右边为一的一位,其他的都为零
(2)x & (x-1) //将最右边为一的一位置零
(3)求2的N次方的余数,将被除数与((2^N)-1)即可;
(4)不用中间变量交换两个变量的值
//异或,是相同时为0,不同时为1,并且 A^1=!A , A^0=A所以,第二步相当于a^b^b=a;第三步相当于a^b^a=b,最终两个数交换了
void swap(int a,int b)
{
a=a^b;
b=b^a;
a=a^b;
}
//此法有个前提是交换的两个变量必须是可以进行代数运算的
void swap(int a,int b)
{
a=a+b;
b=a-b;
a=a-b;
}