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.

**Credits:**

Special thanks to @ts for adding this problem and creating all test cases.

题意：求一个无符号整数的二进制表示中1的个数。

思路：参考solution。不用先求出该无符号整数的二进制表示。用n和1相与，如果结果为1，说明最低位为1，否则最低位为0，然后不断把n向右移动，直到n为0。

C++代码如下：

class Solution { public: int hammingWeight(uint32_t n) { int res = 0; while (n) { if (n & 1) res++; n >>= 1; } return res; } };

Pingback: LeetCode | nce3xin_code

Pingback: LeetCode Reverse Bits | nce3xin_code