C Program to Convert Octal to Binary Number

This C program converts an octal number to its equivalent binary representation.

Converting numbers between different number systems is a common task in computer programming. The octal number system is a base-8 system that uses digits ranging from 0 to 7. On the other hand, the binary number system is a base-2 system that uses only two digits, 0 and 1.

Problem Statement

Write a C program to convert an octal number to its binary representation using a specific format. The program should follow the given format and convert each octal digit to its corresponding binary representation.

The program should have the following specifications:

  1. The program should prompt the user to enter an octal number.
  2. Read the octal number entered by the user.
  3. Convert each digit of the octal number to its binary representation using the following rules:
    • Each octal digit is converted to a corresponding binary representation.
    • The binary representation of each octal digit is determined as follows:
      • Convert each octal digit to a 3-digit binary number.
      • For example, octal digit 0 is converted to binary 000, octal digit 1 is converted to binary 001, octal digit 2 is converted to binary 010, and so on.
  4. Combine the binary representations of each octal digit to form the final binary number.
  5. Display the resulting binary number to the user.
  6. The program should be implemented using the C programming language.

Ensure that your program handles valid inputs correctly and provides the expected output.

Enter an octal number: 111

Binary number: 1001001

In this example, the user entered the octal number 111. The program converts each digit (1,1 and 1) to its binary representation (100,100 and 1, respectively). Finally, the binary representations are combined to form the binary number 1001001, which is displayed as the output.

Note:

  • Octal numbers are represented using digits from 0 to 7.
  • Binary numbers are represented using digits 0 and 1.

C Program to Convert Octal to Binary Number

#include <stdio.h>

// Function to convert an octal digit to binary
int octalToBinary(int octalDigit) {
    int binary = 0, base = 1;

    // Convert each octal digit to binary
    while (octalDigit > 0) {
        binary += (octalDigit % 10) * base;
        octalDigit /= 10;
        base *= 2;
    }

    return binary;
}

// Function to convert octal to binary
void convertOctalToBinary(int octal) {
    int binary = 0, place = 1;

    // Convert each digit of the octal number to binary
    while (octal > 0) {
        int octalDigit = octal % 10;
        int binaryDigit = octalToBinary(octalDigit);

        binary += binaryDigit * place;
        place *= 1000; // Each octal digit corresponds to 3 binary digits

        octal /= 10;
    }

    printf("Binary number: %d\n", binary);
}

int main() {
    int octal;

    printf("Enter an octal number: ");
    scanf("%d", &octal);

    convertOctalToBinary(octal);

    return 0;
}

How it Works

  1. The program starts by including the necessary header file stdio.h for input/output operations.
  2. Two functions are defined: octalToBinary and convertOctalToBinary. The octalToBinary function converts a single octal digit to its binary representation, and the convertOctalToBinary function converts the entire octal number to binary using the octalToBinary function.
  3. In the octalToBinary function:
    • The function takes a single octal digit as input, which is represented by the variable octalDigit.
    • Inside the function, there are two variables: binary and base. The binary variable stores the calculated binary representation of the octal digit, and the base variable represents the base value used for the conversion.
    • The conversion process starts with initializing binary and base to 0 and 1, respectively.
    • A while loop is used to convert each octal digit to binary. The loop continues as long as the octalDigit is greater than 0.
    • Inside the loop, the rightmost digit of the octalDigit is extracted by using the modulus operator % with 10. This digit is then multiplied by the base and added to the binary variable.
    • The octalDigit is divided by 10 to remove the rightmost digit, and the base is multiplied by 2 to update the base for the next iteration.
    • This process continues until all the digits of the octalDigit have been converted to binary.
    • Finally, the binary variable, which contains the binary representation of the octal digit, is returned from the function.
  4. In the convertOctalToBinary function:
    • The function takes an octal number as input, which is represented by the variable octal.
    • Inside the function, there are two variables: binary and place. The binary variable stores the final binary representation of the octal number, and the place variable represents the place value used for combining binary digits.
    • The conversion process starts with initializing binary and place to 0 and 1, respectively.
    • A while loop is used to convert each digit of the octal number to binary. The loop continues as long as the octal number is greater than 0.
    • Inside the loop, the rightmost digit of the octal number is extracted by using the modulus operator % with 10, and it is stored in the variable octalDigit.
    • The octalDigit is converted to binary by calling the octalToBinary function and passing octalDigit as the argument. The returned binary digit is stored in the variable binaryDigit.
    • The binaryDigit is multiplied by the place and added to the binary variable to combine the binary digits.
    • The place is multiplied by 1000 (since each octal digit corresponds to 3 binary digits) to update the place value for the next iteration.
    • The octal number is divided by 10 to remove the rightmost digit.
    • This process continues until all the digits of the octal number have been converted to binary.
    • Finally, the resulting binary number is printed to the console.
  5. In the main function:
    • The function starts by declaring the variable octal to store the octal number entered by the user.
    • The user is prompted to enter an octal number using the printf function.
    • The scanf function is used to read the user input and store it in the octal variable.
    • The convertOctalToBinary function is called with the octal number as the argument to perform the conversion.
    • The resulting binary number is displayed to the user using the printf function.

By following these steps, the program takes an octal number as input, converts each digit to its binary representation using the specified format, and displays the resulting binary number to the user.

Input /Output

C Program to Convert Octal to Binary Number

Share:

Leave A Reply

Your email address will not be published. Required fields are marked *

You May Also Like

This C program finds the Greatest Common Divisor (GCD) of two given numbers. Problem Statement Write a C program that...
This C program calculates the roots of a quadratic equation of the form ax^2 + bx + c = 0....
This C program allows you to find the length of a linked list, which is the number of nodes present...