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.
化二进制,那么第一个想的就是手工算二进制的方法了,不断的除二,然后看余数,so try it
class Solution {
public:
int hammingWeight(uint32_t n) {
int count = 0;
while(n > 0)
{
if(n % 2 == 1)
count++;
n = n / 2;
}
return count;
}
};
居然ac了。。。惊呆。。。