首页 > 代码库 > n&(n-1)

n&(n-1)

作用:将n的二进制表示的最后一位1变为0。

(1)计算二进制中1的位数:

  while(n>0){

    count++;

    n&=n-1;
  }

(2)判断n是否是2的幂:

  n>0&&(n&(n-1)==0)

(3)n!质因数2的个数:

  n-n二进制中1的位数

n&(n-1)