Count Set Bits in an Integer in C++



We are given an integer number let's say, num and the task is to first calculate the binary digit of a number and then calculate the total set bits of a number.

Set bits in a binary number are represented by 1. Whenever we calculate the binary number of an integer value then it is formed as the combination of 0's and 1's. So, the digit 1 is known as a set bit in terms of the computer.

Example 1

    Input ? int number = 50

    Output ? The count of total set bits in a number is ? 3

Explanation 

The binary representation of a number 50 is 110010 and if we calculate it in an 8-digit number then two 0's will be appended in the beginning. So, the total set bits in a number are 3.

Example 2

    Input ? int number = 10

    Output ? The count of total set bits in a number is ? 2

Explanation 

The binary representation of the number 10 is 00001010 and if we calculate it in an 8-digit number then four 0's will be appended in the beginning. So, the total set bits in a number are 2.

Approach used in the below program is as follows

  • Input the number in a variable of integer type

  • Declare a variable count to store the total count of set bits of type unsigned int

  • Start loop FOR from i to 1<<7 and i > 0 and i to i / 2

  • Inside the loop, check num & 1 == TRUE then print 1 else print 0

  • Start loop while calculating the total count of bits till the number isn't 0

  • Inside the loop, set count = count + number & 1 and also set number >>=1

  • Print the count

Example

#include<iostream>
using namespace std;

//Count total set bits in a number
unsigned int bits(unsigned int number) {
  unsigned int count = 0;
  unsigned i;
  //display the total 8-bit number
  cout << "8-bit digits of " << number << " is: ";
  for (i = 1 << 7; i > 0; i = i / 2) {
    (number & i) ? cout << "1": cout << "0";
  }
  //calculate the total set bits in a number
  while (number) {
    count += number & 1;
    number >>= 1;
  }
  cout << "\nCount of total set bits in a number are: " << count;
  return count;
}

int main() {
  int number = 50;
  bits(number);
  return 0;
}

Output

If we run the above code it will generate the following output ?

8-bit digits of 50 is: 00110010
Count of total set bits in a number are: 3
Updated on: 2024-12-11T09:52:15+05:30

5K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements