LeetCode 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.

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;
    }
};

2 thoughts on “LeetCode Number of 1 Bits

  1. Pingback: LeetCode | nce3xin_code

  2. Pingback: LeetCode Reverse Bits | nce3xin_code

Leave a Reply

Your email address will not be published. Required fields are marked *