This C program converts a binary number to its octal equivalent.
Problem statement
The program takes a binary number as input and converts it into an octal number.
C Program to Convert Binary to Octal
#include <stdio.h> int binaryToOctal(int binary) { int octal = 0, decimal = 0, base = 1; // Convert binary to decimal while (binary != 0) { int remainder = binary % 10; decimal += remainder * base; binary /= 10; base *= 2; } base = 1; // Convert decimal to octal while (decimal != 0) { int remainder = decimal % 8; octal += remainder * base; decimal /= 8; base *= 10; } return octal; } int main() { int binary; printf("Enter a binary number: "); scanf("%d", &binary); int octal = binaryToOctal(binary); printf("Octal equivalent: %d\n", octal); return 0; }
How it works
- The program defines a function
binaryToOctal()
to convert binary to octal. - The function takes the binary number as an argument and performs the conversion using the following steps:
- First, it converts the binary number to its decimal equivalent by multiplying each digit with appropriate powers of 2.
- Then, it converts the decimal number to octal by dividing it with 8 and building the octal number digit by digit.
- In the
main()
function, the user is prompted to enter a binary number. - The entered binary number is passed to the
binaryToOctal()
function. - The octal equivalent of the binary number is returned from the function and stored in the
octal
variable. - Finally, the octal equivalent is printed on the console.