位运算初步

来源:互联网 发布:修改表名的sql语句 编辑:程序博客网 时间:2024/06/01 19:58

1:判断n是否为2的方幂; n>0&&(n&(n-1))==0

2:N中最低位1的位置: m=0; while(!(n&1)) n>>=1, m++;

3:N!中最低位1的位置: while(n) { n>>=1; sum += n; }
另int m = n; while(n) {n&=(n-1); count++; } sum = m-count+1;

4:N的二进制中1的个数:for(int i=0; n; ++i)
n &= n-1;

0 0