For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011
, so the function should return 3.
class Solution {
public:
int hammingWeight(uint32_t n) {
int count = 0;
//for (int i = 0; i < 32; ++i) {
// count += (n & 1);
//n = n >> 1;}
while(n)
{
//count++;
n=(n&n-1);//这样每次可以使最低位的1变为0
count++;
}
return count;
}
};