Description:
Write a function that takes an unsigned integer and returns the number of ’1’ bits it has (also known as the Hamming weight).
Example:
the 32-bit integer ’11’ has binary representation 00000000000000000000000000001011, so the function should return 3.
思路:
首先将32位的整数转为32位的二进制数,然后计算1的数量。这里直接可以用右移操作加&1运算可以得到二进制数,正好可以利用(n>>1)&1的判断来得到1的数量。
以下是使用C++的实现过程:
class Solution {
public:
int hammingWeight(uint32_t n) {
int count=0;
for(int i=31; i>=0; i--){
if(n>>i&1){
count++;
}
}
return count;
}
};