Open In App

How to Count Set Bits in an Integer in C++?

Last Updated : 03 Jul, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

In binary representation of a number, a set bit is defined as the binary digit (bit) that is set to 1. In this article, we will learn how to count the set bits in a given integer in C++.

Example

Input: 13

Output:
The number of set bits in 13 (1101) is: 3

Counting Set Bits in an Integer

To count the set bits in a number in C++, we can directly use the __builtin_popcount() method provided by the GCC compiler in C++. This function returns the number of set bits in a given unsigned integer.

Syntax

__builtin_popcount(int x);

Here, x is the unsigned or positive number for which you want to determine the number of set bits.

C++ Program to Count Number of Set Bits in an Integer

The following program illustrates how we can count the set bits of a number using the __builtin_popcount() method in C++.

C++
// C++ Program to Count Set Bits

#include <bitset>
#include <iostream>
using namespace std;

// Function to count set bits in an integer and print the
// result
void countAndPrintSetBits(int num)
{
    // Calculate number of set bits using GCC's built-in
    // function for counting set bits
    int count = __builtin_popcount(num);

    // Print the number of set bits and binary
    // representation of the number
    cout << "Number of set bits in " << num << " ("
         << bitset<32>(num).to_string().substr(
                bitset<32>(num).to_string().find('1'))
         << ") is: " << count << endl;
}

int main()
{
    // Declare the numbers
    int num1 = 5;
    int num2 = 13;

    // Count and print set bits for num1
    countAndPrintSetBits(num1);

    // Count and print set bits for num2
    countAndPrintSetBits(num2);

    return 0;
}

Output
Number of set bits in 5 (101) is: 2
Number of set bits in 13 (1101) is: 3

Time Complexity: O(1)
Auxiliary Space: O(1)

To learn about other methods for counting set bits in an integer you may refer to this article : Counting Set Bits in an integer


Next Article
Practice Tags :

Similar Reads