C Program to Convert Binary Number to Octal and vice-versa

In this example, you will learn to convert binary numbers to octal and vice versa manually by creating a user-defined function.

Adobe Creative Cloud for Teams starting at $33.99 per month.ADS VIA CARBON

To understand this example, you should have the knowledge of the following C programming topics:


Program to Convert Binary to Octal

In this program, we will first convert a binary number to decimal. Then, the decimal number is converted to octal.

#include #include int convert(long long bin); int main() { long long bin; printf("Enter a binary number: "); scanf("%lld", &bin); printf("%lld in binary = %d in octal", bin, convert(bin)); return 0; } int convert(long long bin) { int oct = 0, dec = 0, i = 0; // converting binary to decimal while (bin != 0) { dec += (bin % 10) * pow(2, i); ++i; bin /= 10; } i = 1; // converting to decimal to octal while (dec != 0) { oct += (dec % 8) * i; dec /= 8; i *= 10; } return oct; }

Output

Enter a binary number: 101001
101001 in binary = 51 in octal

Program to Convert Octal to Binary

In this program, an octal number is converted to decimal at first. Then, the decimal number is converted to binary number.

#include #include long long convert(int oct); int main() { int oct; printf("Enter an octal number: "); scanf("%d", &oct); printf("%d in octal = %lld in binary", oct, convert(oct)); return 0; } long long convert(int oct) { int dec = 0, i = 0; long long bin = 0; // converting octal to decimal while (oct != 0) { dec += (oct % 10) * pow(8, i); ++i; oct /= 10; } i = 1; // converting decimal to binary while (dec != 0) { bin += (dec % 2) * i; dec /= 2; i *= 10; } return bin; }

Output

Enter an octal number: 67
67 in octal = 110111 in binary