# 191. Number of 1 Bits

> Nguồn: https://tiennhm.io.vn/docs/leetcode/bit-manipulation/191-number-of-1-bits
> Write a function that takes the binary representation of an unsigned integer and returns the number of `1` bits it has (also known as the Hamming weight).

## Giới thiệu bài toán

Chi tiết: https://leetcode.com/problems/number-of-1-bits/

> **Tip: Yêu cầu**
>
> Write a function that takes the binary representation of an unsigned integer and returns the number of `1` bits it has (also known as the Hamming weight).
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.

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

**Example 2:**
- Input: `n = 00000000000000000000000010000000`
- Output: 1
- Explanation: The input binary string `00000000000000000000000010000000` has a total of one '1' bit.

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

**Constraints:**
- The input must be a binary string of length 32.

**Follow up:** If this function is called many times, how would you optimize it?

## Giải quyết bài toán

        {SourceCs}

        {SourceTs}

**Tham khảo:**
- [C#](https://leetcode.com/submissions/detail/1040273349/)
- [TypeScript](https://leetcode.com/submissions/detail/1040275362/)

## Bài liên quan

- [Biểu diễn số nguyên dương trong các hệ số](https://tiennhm.io.vn/blog/unsigned-integer-representation) — Biểu diễn số nguyên dương trong hệ thập phân, hệ nhị phân và hệ thập lục phân
- [Lý thuyết hệ thống số trong máy tính](https://tiennhm.io.vn/blog/data-representation) — Lý thuyết hệ thống số trong máy tính: hệ nhị phân, hệ thập phân, hệ bát phân, hệ thập lục phân.
