描述:
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。
思想:
我们只需要判断最低位是否是 1即可,然后 右移 一位。
( 此算法 只能解决正数,负数会陷入死循环。)
class Solution
{
public:
int hammingWeight(uint32_t n)
{
int count = 0;
while (n)
{
if (n & 1) //最低位等于 1
count++;
n = n >> 1;
}
return count;
}
};