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

Converting between binary and decimal is a common task in computer programming.

Binary numbers are numbers that use only two digits, 0 and 1, while decimal numbers use ten digits, 0 to 9.

In this tutorial, we will write a C++ program to convert binary numbers to decimal and vice-versa.


Converting Binary to Decimal

To convert a binary number to decimal, we use the following algorithm:

  1. Initialize a variable ‘decimal’ to zero.
  2. Read the binary number as a string.
  3. Starting from the rightmost digit of the string, multiply the digit by 2^i, where i is the position of the digit, starting from zero.
  4. Add the result of step 3 to the ‘decimal’ variable.
  5. Repeat steps 3 and 4 for all the digits in the binary string.
  6. The value of ‘decimal’ is the decimal equivalent of the binary number.

Here is the C++ code for the algorithm:

#include <iostream>
#include <cmath>
#include <string>

using namespace std;

int binaryToDecimal(string binary) {
    int decimal = 0;
    int power = 0;
    for (int i = binary.length() - 1; i >= 0; i--) {
        int digit = binary[i] - '0';
        decimal += digit * pow(2, power);
        power++;
    }
    return decimal;
}

int main() {
    string binary;
    cout << "Enter a binary number: ";
    cin >> binary;
    cout << binary << " in decimal is " << binaryToDecimal(binary) << endl;
    return 0;
}

Converting Decimal to Binary

To convert a decimal number to binary, we use the following algorithm:

  1. Initialize a variable ‘binary’ to an empty string.
  2. Read the decimal number.
  3. Divide the decimal number by 2 and record the remainder.
  4. Repeat step 3 until the decimal number is zero.
  5. The binary equivalent is the remainders from step 3, read in reverse order.

Here is the C++ code for the algorithm:

#include <iostream>
#include <string>

using namespace std;

string decimalToBinary(int decimal) {
    string binary = "";
    while (decimal > 0) {
        int remainder = decimal % 2;
        binary = to_string(remainder) + binary;
        decimal /= 2;
    }
    return binary;
}

int main() {
    int decimal;
    cout << "Enter a decimal number: ";
    cin >> decimal;
    cout << decimal << " in binary is " << decimalToBinary(decimal) << endl;
    return 0;
}

In conclusion, converting binary to decimal and vice-versa is a straightforward process in C++.

We use the algorithms described above to perform the conversion.

By following these algorithms, we can easily write a program to convert binary and decimal numbers in C++.