编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
简单版本
class Solution {
public:
int hammingWeight(uint32_t n) {
int ans=0;
while(n!=0)
{
if(n & 1)
ans++;
n=n>>1;
}
return ans;
}
};
优化版本
class Solution {
public:
int hammingWeight(uint32_t n) {
int ans=0;
while(n!=0)//循环次数为1的个数
{
ans++;
n=n&(n-1);//消去最右边的1
}
return ans;
}
};