Count the number of set bits in a 32-bit integer
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.
Counting the number of set bits (also known as 1s or ones) in a binary representation of a 32-bit integer is a common task in various fields related to computer science, such as cryptography, algorithm design, and network security. This process is generally referred to as computing the Hamming weight, or popcount. Understanding how to efficiently count set bits is fundamental for optimizing performance in systems where manipulation and analysis of binary data are required.
Why Count Set Bits?
The number of set bits in a binary number has practical importance in several areas:
- Error Detection/Correction: In communications, the Hamming weight can help in calculating the Hamming distance which is crucial for error detecting and correcting codes.
- Cryptography: Many cryptographic operations require the counting of set bits for encryption, decryption, or hashing procedures.
- Optimization Techniques: In algorithms and data structure implementations, bit manipulation strategies can dramatically reduce time and space complexity.
- Digital Electronics: In hardware design, particularly FPGAs and ASICs, counting set bits can be used to simplify logic designs.
Methods of Counting Set Bits
There are several techniques to count the number of set bits in a 32-bit integer, varying from simple loops to sophisticated bitwise operations.
Naive Method
The most straightforward approach is to iterate over each of the bits of the number, checking whether each bit is set (i.e., whether it is 1):
This method, although simple, tends to be slower, especially for large integers, as it processes every bit of the integer.
Brian Kernighan’s Algorithm
A more efficient approach is the Brian Kernighan’s Algorithm, which works by repeatedly stripping off the lowest set bit from the number:
This algorithm runs in O(k) time, where k is the number of set bits, making it more efficient compared to the naive method.
Lookup Table Method
For 32-bit numbers, a lookup table method can be very fast. It precomputes the Hamming weight for all byte values (0–255) and stores them in a table:
Built-in Functions
Many programming environments provide built-in functions to count set bits. For instance, Python has bin(n).count('1'), and C++ offers __builtin_popcount.
Comparison of Methods
| Method | Complexity | Performance | Suitability |
| Naive | Slow | Simple cases, small integers | |
| Brian Kernighan’s | Fast | General purpose | |
| Lookup Table | Very Fast | Fixed-size integers, repetitive tasks | |
| Built-in Functions | Implementation dependent | Fast | When available and optimized |
( = number of bits, = number of set bits)
Conclusion
Counting set bits is a fundamental operation that has applications in various sectors of computing. Several methods exist, each with its advantages and disadvantages, offering trade-offs between simplicity and efficiency. Choosing the right method depends on specific requirements such as the size of the input data, frequency of operation, and the computational resources available.
Related reading
- Count the number of set bits in a 32-bit integer
- Count the subsequences of length 4 divisible by 9
- count the total number of 1's in integers from 1 to N
- Counting according to query
- Counting alternating numbers in an array
- counting boolean parenthesizations implementation
- Counting inversions in an array
- Counting inversions in ranges

DSA Fundamentals
Master algorithmic patterns and data structures through hands-on LeetCode-style problems - from arrays and hashing to dynamic programming and advanced graphs.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.