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
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:
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.
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
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics