w3resource

Java: Convert a binary number to a Octal number

Java Basic: Exercise-24 with Solution

Write a Java program to convert a binary number to an octal number.

Binary number: A binary number is a number expressed in the base-2 numeral system or binary numeral system. This system uses only two symbols: typically 0(zero) and 1(one).

Octal number: The octal numeral system is the base-8 number system, and uses the digits 0 to 7.

Test Data:
Input a binary number: 111

Pictorial Presentation: Binary to Octal number

Java: Convert a binary number to a Octal number

Sample Solution:

Java Code:

 import java.util.*;

public class Exercise24 {
    public static void main(String[] args) {
        // Declare variables to store binary and decimal numbers, remainder, quotient, and an array for octal digits
        int binnum, binnum1, rem, decnum = 0, quot, i = 1, j;
        int octnum[] = new int[100];

        // Create a Scanner object to read input from the user
        Scanner scan = new Scanner(System.in);

        // Prompt the user to input a binary number
        System.out.print("Input a Binary Number : ");
        binnum = scan.nextInt();
        binnum1 = binnum;

        // Convert the binary number to decimal
        while (binnum > 0) {
            rem = binnum % 10;
            decnum = decnum + rem * i;
            i = i * 2;
            binnum = binnum / 10;
        }

        i = 1;
        quot = decnum;

        // Convert the decimal number to octal
        while (quot > 0) {
            octnum[i++] = quot % 8;
            quot = quot / 8;
        }

        // Display the equivalent octal value of the original binary number
        System.out.print("Equivalent Octal Value of " + binnum1 + " is :");
        for (j = i - 1; j > 0; j--) {
            System.out.print(octnum[j]);
        }
        System.out.print("\n");
    }
}

Explanation:

In the exercise above -

  • First, initialize an array 'octnum' to store the octal digits of the converted number and other necessary variables.
  • It takes a binary number as input from the user using the "Scanner" class and stores it in the variable 'binnum'.
  • Next it enters a loop to convert the binary number to decimal:
    • In each iteration, it calculates the remainder when 'binnum' is divided by 10 (which gives the least significant binary digit).
    • It adds this remainder multiplied by i to the 'decnum' variable to accumulate the decimal value.
    • It multiplies 'i' by 2 to prepare for the next binary digit.
    • It updates 'binnum' by removing the least significant digit (rightmost) and by dividing it by 10.
    • The loop continues until 'binnum' becomes zero, effectively converting the entire binary number to decimal.
  • After converting to decimal, it enters another loop to convert the decimal number to octal:
    • In each iteration, it calculates the remainder when 'decnum' is divided by 8 (which gives the least significant octal digit).
    • It stores this remainder in the 'octnum' array.
    • It updates 'decnum' by dividing it by 8 to move to the next octal digit.
  • Finally, it prints the octal representation of the original binary number by iterating through the 'octnum' array in reverse order.

Sample Output:

Enter Binary Number : 111                                                                                     
Equivalent Octal Value of 111 is :7  

Flowchart:

Flowchart: Java exercises: Convert a binary number to a Octal number

Java Code Editor:

Previous: Write a Java program to convert a binary number to hexadecimal number.
Next: Write a Java program to convert a octal number to a decimal number.

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.