In this article, we are going to learn how to convert an Octal number to an equivalent Binary number in C++. Here we are going to learn about two number systems one is binary and another is octal. Binary numbers are base 2 numbers and represented in 0s and 1s. Octal numbers are base 8 numbers and are represented in numbers from 0 to 7.The binary to octal equivalent number table is given below:
Binary Number | Octal Number |
000 | 0 |
001 | 1 |
010 | 2 |
011 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1. C++ program to convert Octal to Binary number
#include<iostream>
using namespace std;
#define SIZE 16
int main()
{
char octNum[SIZE];
int i = 0;
cout<< "Please enter an octal number: ";
cin >> octNum;
cout <<"Binary Equivalent to Octal number " << octNum << " is:";
while (octNum[i])
{
switch (octNum[i])
{
case '0':
printf("000");
break;
case '1':
printf("001");
break;
case '2':
printf("010");
break;
case '3':
printf("011");
break;
case '4':
printf("100");
break;
case '5':
printf("101");
break;
case '6':
printf("110");
break;
case '7':
printf("111");
break;
default:
cout << " Not Possible! Because your input is Wrong";
return 0;
}
i++;
}
return 0;
}
Output
Please enter an octal number: 4
Binary Equivalent to Octal number 4 is:100
Please enter an octal number: 9
Binary Equivalent to Octal number 9 is: Not Possible! Because your input is Wrong
2. C++ Program to Convert Octal to Binary
In the above program, we made the use of a switch statement and it works only for basic octal numbers.
In this below example, we are expanding this conversion logic for any size of the octal number.
#include<iostream>
using namespace std;
int main()
{
int BINCONSTANTS[] = {0, 1, 10, 11, 100, 101, 110, 111};
long long octNum, tmpOctNo;
long long binNum, place;
int rem;
cout<< "Please enter an octal number: ";
cin >> octNum;
tmpOctNo = octNum;
binNum = 0;
place = 1;
while(tmpOctNo > 0)
{
rem = tmpOctNo % 10;
binNum = (BINCONSTANTS[rem] * place) + binNum;
tmpOctNo = tmpOctNo/10;
place =place * 1000;
}
cout <<"Binary Equivalent to Octal number " << octNum << " is:" << binNum;
return 0;
}
Output
Please enter an octal number: 4
Binary Equivalent to Octal number 4 is:100
Please enter an octal number: 123
Binary Equivalent to Octal number 123 is:1010011