C++ Program to Convert Binary Number to Decimal and vice-versa


In a computer system, the binary number is expressed in the binary numeral system while the decimal number is in the decimal numeral system. The binary number is in base 2 while the decimal number is in base 10.

Examples of decimal numbers and their corresponding binary numbers are as follows −

Decimal NumberBinary Number
1001010
700111
2511001
1610000

A program that converts the binary numbers into decimal and the decimal numbers into binary is as follows.

Example

 Live Demo

#include <iostream>
using namespace std;
void DecimalToBinary(int n) {
   int binaryNumber[100], num=n;
   int i = 0;
   while (n > 0) {
      binaryNumber[i] = n % 2;
      n = n / 2;
      i++;
   }
   cout<<"Binary form of "<<num<<" is ";
   for (int j = i - 1; j >= 0; j--)
      cout << binaryNumber[j];
   cout<<endl;
}
int BinaryToDecimal(int n) {
   int decimalNumber = 0;
   int base = 1;
   int temp = n;
   while (temp) {
      int lastDigit = temp % 10;
      temp = temp/10;
      decimalNumber += lastDigit*base;
      base = base*2;
   }
   cout<<"Decimal form of "<<n<<" is "<<decimalNumber<<endl;;
}
int main() {
   DecimalToBinary(23);
   BinaryToDecimal(10101);
   return 0;
}

Output

Binary form of 23 is 10111
Decimal form of 10101 is 21

In the program given above, there are two functions DecimalToBinary and BinaryToDecimal. These convert the number from decimal to binary and binary to decimal respectively.

In the DecimalToBinary function, the binary value of the decimal number n is stored in the array binaryNumber[]. A while loop is used and the result of the n modulus 2 operation is stored in binaryNumber[] for each iteration of the loop. This is shown using the following code snippet.

while (n > 0) {
   binaryNumber[i] = n % 2;
   n = n / 2;
   i++;
}

After this, the binary number is displayed using a for loop. This is shown as follows.

cout<<"Binary form of "<<num<<" is ";
for (int j = i - 1; j >= 0; j--)
cout << binaryNumber[j];

In the function, BinaryToDecimal(), a while loop is used to convert the binary number into decimal number. The LastDigit contains the last bit of the temp variable. The base contains the base value such as 2, 4, 6, 8 etc. The DecimalNumber contains the sum of the previous DecimalNumber value and the product of the LastDigit and base.

All this is demonstrated using the following code snippet −

while (temp) {
   int lastDigit = temp % 10;
   temp = temp/10;
   decimalNumber += lastDigit*base;
   base = base*2;
}

In the main() function, the DecimalToBinary() and BinaryToDecimal() functions are called. This is shown as follows.

DecimalToBinary(23);
BinaryToDecimal(10101);

Samual Sam
Samual Sam

Learning faster. Every day.

Updated on: 24-Jun-2020

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements