codescracker
c++

C++ Program to Convert Binary to Octal



« Previous Program Next Program »


In this article, you will learn and get code on binary to octal conversion in C++. The program is created with and without using function.

But before starting the program, if you are not aware about steps and formula used for the conversion, then you can refer to binary to octal. There you will get every required things.

Binary to Octal in C++

To convert binary number to octal in C++ programming, you have to ask from 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 print its equivalent octal value. Here is its answer:

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

#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 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 above program) with user input as 1101110 goes like:

Using user-defined Function

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

// Binary to Octal using user-defined Function
// ----codescracker.com----

#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 of previous program. You can also convert binary to octal in an indirect way. That is, first binary to decimal and then decimal to octal.

Same Program in Other Languages


« Previous Program Next Program »