You are on page 1of 2

Write a C program to read binary number from user and convert to octal number

system. How to convert from binary number system to octal number system in C.

Example:
Input binary number: (00110111)2
Output octal number: (67)8

Required knowledge:
Basic C programming, For loop

Binary Number System:


Binary number system is a base 2 number system. Binary number system uses only 2
symbols to represent all its numbers i.e. 0 and 1.

Octal Number System:


Octal number system is a base 8 number system. Octal number system uses 8 symbols
to represent all its numbers i.e. 0 1 2 3 4 5 6 7

Algorithm to convert Binary to Octal number system:


Conversion from binary to octal number system is very easy just follow these steps
to convert any binary number to octal number.
Step 1: Group all binary number into 3 digits starting from right side.
Step 2: Write corresponding octal value for the grouped binary value.
Binary to Octal number conversion
Binary Octal
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Program:
/**
* C program to convert binary to octal number system
*/

#include <stdio.h>

int main()
{
int octalConstant[] = {0, 1, 10, 11, 100, 101, 110, 111};

long long binary, octal, tempBinary;


int digit, count, i;

octal = 0;
count = 1;

/*
* Reads binary number from user
*/
printf("Enter any binary number: ");
scanf("%lld", &binary);

/* Copies original binary value to temp variable */


tempBinary = binary;

/*
* Finds the octal equivalent of binary value
*/
while(tempBinary != 0)
{
digit = tempBinary % 1000;

for(i=0; i<8; i++)


{
if(octalConstant[i] == digit)
{
octal = (i * count) + octal;
break;
}
}

tempBinary /= 1000;
count *= 10;
}

printf("\nOriginal binary number = %lld\n", binary);


printf("Octal number = %lld", octal);

return 0;
}

You might also like