1.统计末尾1的个数
int count = 0;
int flag = 1;
while(flag){
if(num & flag){
count++;
}
flag = flag << 1;
}
return count;
2.判断奇偶
return x&1==1
若是奇数返回q否则返回0
3.交换两个数
a=a^b;
b=b^a;
a=a^b;
4.求绝对值
n=(n^n>>31)-(n>>31);
5.对2^k取模
n&((1<<k)-1)
6.自加1
n=-~n;
7.自减1
n=~-n;
8.lowbit(获得最低位的1)
n&(-n)
部分出自以下,感谢大佬的资料
https://blog.csdn.net/qq_35580883/article/details/78318142
http://blog.sina.com.cn/s/blog_66ad7bba0100hf9k.html
http://www.cnblogs.com/liinux/archive/2015/09/01/4775307.html