0%

### 题目描述

Write a function that takes an unsigned integer and returns the number of ‘1’ bits it has (also known as the `Hamming weight`).

### 例子

#### 例子 1

Input:`n = 00000000000000000000000000001011`
Output:`3`
Explanation:The input binary string `00000000000000000000000000001011` has a total of three `'1'` bits.

#### 例子 2

Input:`n = 00000000000000000000000010000000`
Output:`1`

#### 例子 3

Input:`n = 11111111111111111111111111111101`
Output:`31`
Explanation:The input binary string `11111111111111111111111111111101` has a total of thirty one `'1'` bits.

### Follow Up

• If this function is called many times, how would you optimize it?

### Note

• Note that in some languages, such as Java, there is no unsigned integer type. In this case, the input will be given as a signed integer type. It should not affect your implementation, as the integer’s internal binary representation is the same, whether it is signed or unsigned.
• In Java, the compiler represents the signed integers using `2's complement notation`. Therefore, in Example 3, the input represents the signed integer. `-3`.

### Constraints

• The input must be a binary string of length `32`.

### 解题思路

• 时间复杂度: `O(1)`
• 空间复杂度: `O(1)`

GitHub 代码同步地址： 191.NumberOf1Bits.cpp

GitHub: Leetcode-C++-Solution