Octal To Binary Conversion | C Program
Octal to Binary Conversion in C
Here, on this page we will discuss octal to binary conversion in C. There are 2 approaches to converting an octal number into a binary number:
- First, convert Octal to Decimal and then Decimal to Binary.
- Write 3 digit binary number for all the digits of a number from left to right.
We will discuss the algorithm for both approaches.
Example: Octal : 12 Decimal : 10 Binary : 001010
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<stdio.h>
#include<math.h>
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;
}
printf("Binary Value: %d",binary);
}
int main()
{
int octal;
printf("Octal Value: ");
scanf("%d", &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<stdio.h>
#define MAX 1000
void convert(char octalnum[]){
int i = 0;
printf("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:
printf("\n Invalid octal digit %c ", octalnum[i]);
return;
}
i++;
}
return;
}
int main()
{
char octalnum[MAX];
printf("Insert an octal number: ");
scanf("%[^\n]", 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

#include
#include
int octaltodecimal(int n)
{
int i=0,digit,decimal;
while(n!=0)
{
digit=n%10;
decimal+=digit*pow(8,i);
n/=10;
i++;
}
return decimal;
}
int decimaltobinary(int n)
{
int i=0,j;
long long int binaryarray[32];
int x= octaltodecimal(n);
while(x!=0)
{
binaryarray[i]=x%2;
x/=2;
i++;
}
for(j=i-1;j>=0;j–)
{
printf(“%lld”,binaryarray[j]);
}
}
int main()
{
long n;
printf(“enter the octal number”);
scanf(“%ld”,&n);
octaltodecimal(n);
decimaltobinary(n);
return 0;
}