codescracker
c++

C++ Program to Convert Decimal to Binary



« Previous Program Next Program »


In this article, you will learn and get code on decimal to binary conversion in C++. The program is created using following approaches:

Some extra programs are also available. But before going through all these programs available over here, if you're not aware about the steps used for the conversion, then you can refer to decimal to binary to get every required things.

Decimal to Binary in C++

To convert decimal number to binary number in C++ programming, you have to ask from user to enter the decimal number first. And then convert it into its equivalent binary value. Print its equivalent binary value on output as shown in the program given below:

The question is, write program in C++ to receive a decimal number and prints its equivalent value in binary. The answer to this question is given below:

// C++ Program to Convert Decimal to Binary
// ----codescracker.com----

#include<iostream>
using namespace std;
int main()
{
    int decimalNum, binaryNum[20], i=0;
    cout<<"Enter the Decimal Number: ";
    cin>>decimalNum;
    while(decimalNum!=0)
    {
        binaryNum[i] = decimalNum%2;
        i++;
        decimalNum = decimalNum/2;
    }
    cout<<"\nEquivalent Binary Value: ";
    for(i=(i-1); i>=0; i--)
        cout<<binaryNum[i];
    cout<<endl;
    return 0;
}

This program was build and run under Code::Blocks IDE. Below is its sample run:

C++ program convert decimal to binary

Now supply any decimal number input say 105 and press ENTER key to print its equivalent value in binary number system as shown in the output given below:

decimal to binary c++

The dry run of above program with user input 105 (decimal number) goes like:

  1. Initial value, i=0
  2. When user enters a decimal number say 105, then it gets stored in decimalNum. So decimalNum=105
  3. Now the condition decimalNum!=0 (of while loop) gets evaluated
  4. The condition decimalNum!=0 or 105!=0 evalutes to be true, therefore program flow goes inside the loop
  5. And decimalNum%2 or 105%2 or 1 gets intialized to binaryNum[i] or binaryNum[0]. So, binaryNum[0]=1
  6. The value of i gets incremented. Now i=1
  7. And decimalNum/2 or 52 gets initialized to decimalNum. Now decimalNum=52
  8. Program flow goes back and evaluates the condition of while loop again with new value of decimalNum (52)
  9. Because again the condition evaluates to be true, therefore program flow again goes inside the loop
  10. And again, decimalNum%2 or 52%2 or 0 gets initialized to binaryNum[i] or binaryNum[1]. So binaryNum[1]=0
  11. Again the value of i gets incremented. So i=2
  12. And then decimalNum/2 or 52/2 or 26 gets initialized to decimalNum. So decimalNum=26
  13. Process the same, from step no.8 to 12 with new value of decimalNum and i
  14. On continuing the process in similar way until the condition of while loop evaluates to be false, we will get the values of binaryNum[] as:
    • binaryNum[0]=1
    • binaryNum[1]=0
    • binaryNum[2]=0
    • binaryNum[3]=1
    • binaryNum[4]=0
    • binaryNum[5]=1
    • binaryNum[6]=1
  15. When the value of decimalNum becomes equal to 0, then the condition decimalNum!=0 or 0!=0 evaluates to be false, therefore the evaluation of while loop gets ended. And using for loop, the value of binaryNum[] gets printed
  16. The value of binaryNum[] gets printed from its last to 0th index
  17. That will be, 1101001

Convert Decimal to Binary from 1 to 20

Here is another program that converts all the decimal number from 1 to 20 to its equivalent binary value.

// Decimal to Binary from 1 to 20
// ----codescracker.com----

#include<iostream>
using namespace std;
int main()
{
    int decimalNum, binaryNum[10], i, k;
    cout<<" Decimal Number\t\tBinary Number\n";
    for(k=1; k<=20; k++)
    {
        i=0;
        decimalNum = k;
        while(decimalNum!=0)
        {
            binaryNum[i] = decimalNum%2;
            i++;
            decimalNum = decimalNum/2;
        }
        cout<<" "<<k<<"\t\t\t";
        for(i=(i-1); i>=0; i--)
            cout<<binaryNum[i];
        cout<<endl;
    }
    cout<<endl;
    return 0;
}

Here is the output produced by above program:

decimal to binary 1 to 20 c++

Decimal to Binary Conversion without using Array

The question is, write a program in C++ that converts decimal number to binary number without using array. Here is its answer. This program doesn't use array to convert any given number in decimal to its equivalent binary value:

// Decimal to Binary without using Array
// ----codescracker.com----

#include<iostream>
using namespace std;
int main()
{
    int decimalNum, binaryNum=0, mul=1, rem;
    cout<<"Enter the Decimal Number: ";
    cin>>decimalNum;
    while(decimalNum>0)
    {
        rem = decimalNum%2;
        binaryNum = binaryNum+(rem*mul);
        mul = mul*10;
        decimalNum = decimalNum/2;
    }
    cout<<"\nEquivalent Binary Value: "<<binaryNum;
    cout<<endl;
    return 0;
}

Here is its sample run with user input 18 as decimal number:

decimal to binary without array c++

Using user-defined Function

This program also does the same job as of previous program. The only difference is, this program is created using a user-defined function DecimalToBinary(). That is, this function is created to convert decimal to binary.

This function takes decimal number as its argument and returns its equivalent binary value. The return value is initialized to binaryNum (in main() function). Print the value of binaryNum as output.

// C++ Decimal to Binary using user-defined Function
// ----codescracker.com----

#include<iostream>
using namespace std;
int DecimalToBinary(int);
int main()
{
    int decimalNum, binaryNum;
    cout<<"Enter the Decimal Number: ";
    cin>>decimalNum;
    binaryNum = DecimalToBinary(decimalNum);
    cout<<"\nEquivalent Binary Value: "<<binaryNum;
    cout<<endl;
    return 0;
}
int DecimalToBinary(int decimalNum)
{
    int binaryNum=0, mul=1, rem;
    while(decimalNum>0)
    {
        rem = decimalNum%2;
        binaryNum = binaryNum+(rem*mul);
        mul = mul*10;
        decimalNum = decimalNum/2;
    }
    return binaryNum;
}

It will produce the same output as of previous program. You can also create the same purpose program using user-defined function in this way:

// ----codescracker.com----

#include<iostream>
using namespace std;
int DecimalToBinary(int, int);
int binaryNum[20];
int main()
{
    int decimalNum, i;
    cout<<"Enter the Decimal Number: ";
    cin>>decimalNum;
    i = DecimalToBinary(decimalNum, 0);
    cout<<"\nEquivalent Binary Value: ";
    for(i=(i-1); i>=0; i--)
        cout<<binaryNum[i];
    cout<<endl;
    return 0;
}
int DecimalToBinary(int decimalNum, int i)
{
    while(decimalNum!=0)
    {
        binaryNum[i] = decimalNum%2;
        i++;
        decimalNum = decimalNum/2;
    }
    return i;
}

Same Program in Other Languages


« Previous Program Next Program »