n&(n-1)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)的主要内容,如果未能解决你的问题,请参考以下文章

n & (n-1) 这个表达式是做啥的? [复制]

解释代码((n & (n-1))== 0)的含义

计算位数:这条线是如何工作的? n=n&(n-1); [复制]

你真的会 &与运算妙用吗?

你真的会 &与运算妙用吗?

UVA 11426 (欧拉函数&&递推)