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
octalvariable. - Finally, the octal equivalent is printed on the console.
Input/Output
