Here is a C program to convert binary number to octal number system.
Required Knowledge
This program converts a binary number( base 2) to octal number (base 8).
Binary number system is a base 2 number system using digits 0 and 1 whereas Octal number system is base 8 and using digits from 0 to 7. Given a binary number as input from user convert it to octal number.
For Example
0000011 in Binary is equivalent to 3 in Octal number system.
Algorithm to convert Binary to Octal number
- Divide the input binary number in set of three binary digits, starting from least significant digit to most significant digit.
- For every group of three digits, write the equivalent octal digit.
For Example:
Let Binary number is 11001100
Divide binary number in group of three from right side: (11)(001)(100)
Replace each group with equivalent octal digit : 314
C program to convert a decimal number to octal number
#include <stdio.h> int main() { /*Define an array of octal digits to binary */ int octalDigitToBinary[8] = {0, 1, 10, 11, 100, 101, 110, 111}; long binaryNumber, octalNumber = 0, binaryCopy; int threeDigits, multiple, counter; multiple = 1; /* * Take a binary number as input from user */ printf("Enter a Binary Number\n"); scanf("%ld", &binaryNumber); /* * Convert binary to octal number equivalent */ while(binaryNumber != 0) { threeDigits = binaryNumber % 1000; /*Search through octalDigitToBinary array */ for(counter = 0; counter < 8; counter++) { if(octalDigitToBinary[counter] == threeDigits) { octalNumber = (counter * multiple) + octalNumber; break; } } /* Remove last three digits */ binaryNumber = binaryNumber/1000; multiple *= 10; } printf("Octal Mumber : %ld", octalNumber); return 0; }Output
Enter a Binary Number 11001100 Octal Mumber : 314
Enter a Binary Number 0000011 Octal Mumber : 3
Related Topics