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; }METHOD 2:
#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