# 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[1000];
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++;
}
// Display the hexadecimal value
System.out.print("Hexadecimal value: ");
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 HexaDecimal value: D

**Flowchart: **

**Java Code Editor:**

**Previous:** Write a Java program to convert a binary number to decimal number.

**Next:** Write a Java program to convert a binary number to a Octal 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://www.w3resource.com/java-exercises/basic/java-basic-exercise-23.php

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics