w3resource

C Exercises: Convert an octal number into binary


54. Octal to Binary Conversion

Write a program in C to convert an octal number into binary.

This C program converts an octal number into its equivalent binary representation. It prompts the user to input an octal number, then iterates through each digit to calculate its decimal equivalent using a for loop. Afterward, it converts the decimal number obtained to binary format, storing and printing both the original octal number and its binary equivalent.

Visual Presentation:

Convert an octal number into binary

Sample Solution:

C Code:

#include 
#include 
int main() {
    // Declare variables
    long int n1, n5, p = 1;
    long int dec = 0, i;
    long int binno = 0;
    // Print output headers
    printf("\n\nConvert Octal to Binary:\n");
    printf("-------------------------\n");
    // Get octal input
    printf("Input an octal number (using digits 0 - 7): ");
    scanf("%ld", &n1);
    // Store input number
    n5 = n1;
    // Convert octal to decimal
    // Loop through each octal digit using a for loop
    for (i = 0; n1 > 0; n1 = n1 / 10, i++) {
        // Get current digit
        long int d = n1 % 10;
        // Update power of 8
        p = pow(8, i);
        // Add digit * power of 8 to result
        dec += d * p;
    }
    // Convert decimal to binary
    // Loop through each binary digit using a for loop
    for (i = 1; dec > 0; dec = dec / 2, i *= 10) {
        // Get remainder and add to result
        binno += (dec % 2) * i;
    }
    // Print octal and binary result
    printf("\nThe Octal Number: %ld\nThe equivalent Binary Number: %ld\n\n", n5, binno);
    return 0; // Indicate successful completion of the program
}

Output:

Convert Octal to Binary:                                                                                      
 -------------------------                                                                                    
Input an octal number (using digit 0 - 7) :57                                                                 
                                                                                                              
The Octal Number : 57                                                                                         
The equivalent Binary  Number : 101111 

Explanation:

Here's a brief explanation of the above code:

  • Header and Declaration:
    • Includes the necessary header files ('stdio.h' for input/output and "math.h" for mathematical functions).
    • Declared variables: 'n1' (input octal number), 'n5' (backup of the input), 'p' (power of 8 multiplier), 'dec' (resulting decimal number), i (loop variable for octal to decimal conversion), 'binno' (resulting binary number).
  • User Input:
    • Asks the user to input an octal number (using digits 0 - 7).
    • Reads the input and stores it in the variable 'n1'.
  • Octal to Decimal Conversion (using a for loop):
    • Initializes i to 0 for the power of 8.
    • Iterates through each digit of the octal number using a "for" loop.
    • Calculates the contribution of each digit to the decimal number using the "pow()" function.
    • Accumulates the result in the variable 'dec'.
  • Decimal to Binary Conversion (using a while loop):
    • Resets i to 1 for the power of 2.
    • Repeatedly divides the decimal number ('dec') by 2 using a "while" loop.
    • Calculates the remainder and adds it to the binary result ('binno').
    • Updates to the power of 2.
    • Continue until the decimal number becomes 0.
  • Result Display:
    • Prints the input octal number and its equivalent binary number.
  • Return Statement:
    • Returns 0 to indicate successful program completion.

Flowchart:

Flowchart : Convert octal number into binary.

For more Practice: Solve these Related Problems:

  • Write a C program to convert an octal number to binary by processing each digit into its 3-bit binary equivalent.
  • Write a C program to convert an octal number to binary without using arrays by employing arithmetic operations.
  • Write a C program to convert an octal number to binary and count the number of 1’s in the resulting binary number.
  • Write a C program to convert an octal number to binary and display the output in groups of four digits.

Go to:


PREV : Binary to Octal Conversion.
NEXT : Decimal to Hexadecimal Conversion.

C Programming Code Editor:



Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.