求任意一个数二进制中1的个数

来源:互联网 发布:gitlab windows 编辑:程序博客网 时间:2024/05/18 03:43
class Solution {
public:
int NumberOf1(int n) {
int cnt=0;
while(n!=0)
{
cnt++;
n=n&(n-1);//去除二进制中位数最低的1
}
return cnt;
}
};
判断是否是2的幂

if((n>0)&&(!(n&(n-1)))==true)
yes
简化版
if(n>0&&(n&(n-1))==false)