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.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/java-exercises/basic/java-basic-exercise-24.php