To find the count of a total number of set bits in the binary representation of an integer in two ways: a simple while loop and by using a built-in library function in C++.

** ****METHOD 1:**

In this method, we use a simple while loop to count the number of set bits in the binary representation of an integer by executing the loop till N>0. In each iteration, we check if the rightmost bit is set or not in N by using bitwise and **(&)** between N and 1.

Check if N&1 is zero or not. If it is not zero it implies that the bit is set and we increment our counter by 1.Rightshift the integer by 1 position. Counter gives the final value of set bits in the integer.

**Example**: Let's consider 10, having binary representation as 1010. Here the total number of set bits is 2.

Have a look at the implementation code for better understanding.

#include #include<bits/stdc++.h> #define endl "\n" using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin>>n; int counter=0; // METHOD 1: while(n) { if( n & 1) //BITWISE AND WITH 1 counter+=1; //INCREMENT COUNTER IF BIT IS SET n=n>>1 //RIGHTSHIFT THE BITS OR SIMPLY DIVIDE N BY 2 } cout<<counter<<endl; }

In this, we will see the use of STL function __builtin_popcount().

Have a look at the implementation code for better understanding.

#include #include<bits/stdc++.h> #define endl "\n" using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin>>n; int counter; // METHOD 2: counter=__builtin_popcount(n); cout<<counter<<endl; }

Submitted by mahima mahendru (mahicool7)

Download packets of source code on Coders Packet

## Comments