Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
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
