C/C++ Program to Count set bits in an integer (original) (raw)

Last Updated : 14 May, 2025

Write an efficient program to count number of 1s in binary representation of an integer.

**Examples :

Input : n = 6
Output : 2
Binary representation of 6 is 110 and has 2 set bits

Input : n = 13
Output : 3
Binary representation of 11 is 1101 and has 3 set bits

setbit

**1. Simple Method

Loop through all bits in an integer, check if a bit is set and if it is then increment the set bit count. See below program.

C `

#include <stdio.h>

/* Function to get no of set bits in binary representation of positive integer n */ unsigned int countSetBits(unsigned int n) { unsigned int count = 0; while (n) { count += n & 1; n >>= 1; } return count; }

/* Program to test function countSetBits */ int main() { int i = 9; printf("%d", countSetBits(i)); return 0; }

`

**Recursive Approach :

C++ `

// Cpp implementation of recursive // approach to find the number // of set bits in binary representation // of positive integer n #include <bits/stdc++.h> using namespace std;

// recursive function to count set bits int countSetBits(int n) { // base case if (n == 0) return 0;

else

    // if last bit set add 1 else add 0
    return (n & 1) + countSetBits(n >> 1);

}

// driver code int main() { // get value from user int n = 9;

// function calling
cout << countSetBits(n);

return 0;

}

// This code is contributed by Raj.

`

Please refer complete article on

Count set bits in an integer

for more details!

Similar Reads