C++ Program to Convert Binary to Octal

In this article, you will learn and get code for binary to octal conversion in C++. The program is written both with and without the use of functions.

But before starting the program, if you are not aware of the steps and formula used for the conversion, you can refer to Binary to Octal. You will find everything you require there.

Binary to Octal in C++

To convert a binary number to octal in C++ programming, you have to ask the user to enter any number in binary. and then convert it into its equivalent octal value as shown in the program given below.

The question is: write a program in C++ that receives any binary number and prints its equivalent octal value. Here is its answer:

#include<iostream>
using namespace std;
int main()
{
    int binaryNum, octalDigit=0, octalNum[20];
    int i=0, mul=1, chk=1, rem;
    cout<<"Enter the Binary Number: ";
    cin>>binaryNum;
    while(binaryNum!=0)
    {
        rem = binaryNum%10;
        octalDigit = octalDigit + (rem*mul);
        if(chk%3==0)
        {
            octalNum[i] = octalDigit;
            mul = 1;
            octalDigit = 0;
            chk = 1;
            i++;
        }
        else
        {
            mul = mul*2;
            chk++;
        }
        binaryNum = binaryNum/10;
    }
    if(chk!=1)
        octalNum[i] = octalDigit;
    cout<<"\nEquivalent Octal Value:  ";
    for(i=i; i>=0; i--)
        cout<<octalNum[i];
    cout<<endl;
    return 0;
}

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

C++ program convert number from binary to octal

Now supply the binary number input, say 1101110, and press the ENTER key to print its equivalent value in octal, as shown in the snapshot given below:

binary to octal c++

Here is another sample run with user input as 11010010:

binary to octal conversion c++

The dry run of the above program with user input as 1101110 goes like this:

Binary to octal in C++, using a user-defined function

Let's create another program that does the same job using a user-defined function, BinaryToOctal(). This function receives a binary number as its argument and converts it into its equivalent octal value.

#include<iostream>
using namespace std;
void BinaryToOctal(int);
int i=0, octalNum[20];
int main()
{
    int binaryNum;
    cout<<"Enter any Binary Number: ";
    cin>>binaryNum;
    BinaryToOctal(binaryNum);
    cout<<"\nEquivalent Octal Value: ";
    for(i=i; i>=0; i--)
        cout<<octalNum[i];
    cout<<endl;
    return 0;
}
void BinaryToOctal(int binaryNum)
{
    int octalDigit=0, mul=1, chk=1, rem;
    while(binaryNum!=0)
    {
        rem = binaryNum%10;
        octalDigit = octalDigit + (rem*mul);
        if(chk%3==0)
        {
            octalNum[i] = octalDigit;
            mul = 1;
            octalDigit = 0;
            chk = 1;
            i++;
        }
        else
        {
            mul = mul*2;
            chk++;
        }
        binaryNum = binaryNum/10;
    }
    if(chk!=1)
        octalNum[i] = octalDigit;
}

It will produce the same output as the previous program. You can also convert binary to octal in an indirect way. That is, first binary to decimal and then decimal to octal.

The same program in different languages

C++ Quiz


« Previous Program Next Program »