﻿ Java - Convert a binary number to hexadecimal number

# Java: Convert a binary number to hexadecimal number

## Java Basic: Exercise-23 with Solution

Write a Java program to convert a binary number to a hexadecimal 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).

Hexadecimal number: This is a positional numeral system with a radix, or base, of 16. Hexadecimal uses sixteen distinct symbols, most often the symbols 0-9 to represent values zero to nine, and A, B, C, D, E, F (or alternatively a, b, c, d, e, f) to represent values ten to fifteen.

Test Data:
Input a binary number: 1101

Pictorial Presentation: Binary to Hexadecimal number Sample Solution:

Java Code:

`````` import java.util.Scanner;

public class Exercise23 {
public static void main(String[] args) {
// Declare an array to store hexadecimal digits, variables for calculation, and binary input
int[] hex = new int;
int i = 1, j = 0, rem, dec = 0, bin;

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

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

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

// Convert the decimal number to hexadecimal
while (dec != 0) {
hex[i] = dec % 16;
dec = dec / 16;
i++;
}

for (j = i - 1; j >= 0; j--) {
if (hex[j] > 9) {
System.out.print((char)(hex[j] + 55));
} else {
System.out.print(hex[j]);
}
}
System.out.print("\n");
}
}
```
```

Explanation:

In the exercise above -

• Initializes an array 'hex' to store the hexadecimal digits of the converted number, as well as other necessary variables.
• It takes a binary number as input from the user using the "Scanner" class and stores it in the variable 'bin'.
• It enters a loop to convert the binary number to decimal:
• In each iteration, it calculates the remainder when the 'bin' is divided by 2 (which gives the least significant binary digit).
• It adds this remainder multiplied by 'i' to the 'dec' variable to accumulate the decimal value.
• It multiplies 'i' by 2 to prepare for the next binary digit.
• It updates 'bin' by removing the least significant digit (rightmost) by dividing it by 10.
• The loop continues until 'bin' becomes zero, effectively converting the entire binary number to decimal.
• After converting to decimal, it enters another loop to convert the decimal number to hexadecimal:
• In each iteration, it calculates the remainder when 'dec' is divided by 16 (which gives the least significant hexadecimal digit).
• It stores this remainder in a 'hex' array.
• It updates 'dec' by dividing it by 16 to move to the next hexadecimal digit.
• Finally, it prints the hexadecimal representation of the original binary number by iterating through the 'hex' array in reverse order. It also handles hexadecimal digits greater than 9 by converting them to the corresponding letters A-F.

Sample Output:

```Input a Binary Number: 1101
```

Flowchart: Java Code Editor:

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿