Write a function that takes
an unsigned integer and returns the number of ’1' bits it has (also known as
the Hamming weight).
For example, the 32-bit
integer ’11' has binary representation
00000000000000000000000000001011
so the function should
return 3.
Напишите функцию, которая в
беззнаковом целом числе вычисляет количество 1-битов (вес Хемминга).
Например, в 32-битовом
целом числе ’11', имеющем бинарное представление
00000000000000000000000000001011
имеется три единичных бита.
Функция должна вернуть 3.
class Solution {
public:
int hammingWeight(uint32_t n) {
}
};
циклы
Подсчитываем количество
единиц в битовом представлении n.
Реализация алгоритма
class Solution
{
public:
int hammingWeight(uint32_t n)
{
int res = 0;
В цикле делим n на 2 пока n > 0. Подсчитываем сумму битов.
while(n > 0)
{
res = res + n %
2;
n /= 2;
}
return res;
}
};