C++ Program for Octal to Binary conversion
Octal to Binary Conversion
There are 2 approaches of converting an octal number into a binary number like:
- Write 3 digit binary number for all the digits of a number from left to right.
- first convert octal to decimal and then decimal to binary .
We are using the second approach, it is a long but very simple approach which can also be implemented easily with minimum chances of error.
Method 1:-
- Accept octal number
- Convert it into decimal Equivalent
- Convert this decimal value into Binary
Make sure you have visited these two pages before moving ahead with the code –
Method 1 Code in C++
Run
// this program converts octal to binary // by converting octal->decimal->binary #include<iostream> #include<math.h> using namespace std; void convert (int octal) { int i = 0, decimal = 0; //converting octal to decimal while (octal != 0) { int digit = octal % 10; decimal += digit * pow (8, i); octal /= 10; i++; } printf ("Decimal Value: %d\n", decimal); long long binary = 0; int rem; i = 1; // converting decimal to binary here while (decimal != 0) { rem = decimal % 2; decimal /= 2; binary += rem * i; // moving to next position ex: units -> tens i *= 10; } cout << binary; } int main () { int octal; cout << "Octal Value: "; cin >> octal; convert (octal); return 0; }
Output
Octal Value: 12
Decimal Value: 10
Binary Value: 1010
Method 2
Each digit of an octal number can be converted into its binary Equivalent (see image)
Binary Representation for Octal digit:
- 0 => 000
- 1 => 001
- 2 => 010
- 3 => 011
- 4 => 100
- 5 => 101
- 6 => 110
- 7 => 111
Method 2 Code in C++
Run
#include<iostream> #define MAX 1000 using namespace std; void convert (char octalnum[]) { int i = 0; cout << "Equivalent Binary Number: "; while (octalnum[i]) { //use switch case for multiple condition switch (octalnum[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; //for invalid case default: cout << "\n Invalid octal digit %c " << octalnum[i]; return; } i++; } return; } int main () { char octalnum[MAX]; cout << "Insert an octal number: "; cin >> octalnum; convert (octalnum); }
Output
Insert an octal number: 347
Equivalent Binary Number: 011100111
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Login/Signup to comment