https://leetcode.com/problems/number-of-1-bits/
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.
class Solution {
public:
int hammingWeight(uint32_t n) {
int mask = 1, sum = 0;
for(int i = 0;i<32;i++){
if((n & mask) != 0)
sum++;
mask = mask << 1;
}
return sum;
}
};
2、利用整除2,统计余数为1的个数(4ms)
class Solution {
public:int hammingWeight(uint32_t n) {
int sums = 0;
while(n/2!=0){
sums += n%2;
n /= 2;
}
sums += n%2;
return sums;
}
};