Tutorials
Examples
Tests

# Java Program to Convert Binary to Hexadecimal

This article covers a program in Java that converts a binary number entered by user at run-time of the program, to its equivalent hexadecimal number.

Note - If you're not aware about, how the binary to hexadecimal conversion takes place, then refer to Binary to Hexadecimal Conversion. Now let's move on and create the program.

## Binary to Hexadecimal in Java using while Loop

The question is, write a Java program to convert a given binary number to its equivalent hexadecimal value. The binary number must be received by user at run-time. The program given below is its answer:

```import java.util.Scanner;

public class CodesCracker
{
public static void main(String[] args)
{
int binnum, hexDigit=0, m=1, c=1, rem, i=0;
char[] hexnum = new char;

Scanner scan = new Scanner(System.in);

System.out.print("Enter the Binary Number: ");
binnum = scan.nextInt();

while(binnum!=0)
{
rem = binnum%10;
hexDigit = hexDigit + (rem*m);
if(c%4==0)
{
if(hexDigit<10)
hexnum[i] = (char)(hexDigit+48);
else
hexnum[i] = (char)(hexDigit+55);
m = 1;
c = 1;
hexDigit = 0;
i++;
}
else
{
m = m*2;
c++;
}
binnum = binnum/10;
}

if(c!=1)
hexnum[i] = (char)(hexDigit+48);
if(c==1)
i--;

for(i=1; i>=0; i--)
System.out.print(hexnum[i]);
}
}```

The snapshot given below shows the sample run of above program with user input 111011 as binary number to convert and prints its equivalent hexadecimal value:

From above program, in the statement:

`hexnum[i] = (char)(hexDigit+48);`

(char) is used to typecast (hexDigit+48), to avoid loosy conversion while initializing a value of int type variable to a char type variable.

## Binary to Hexadecimal in Java using for Loop

This program does the same job as of previous program. The only difference is its approach. This program uses for loop, instead of while.

```import java.util.Scanner;

public class CodesCracker
{
public static void main(String[] args)
{
int hexDigit, m=1, c=1, i=0;
char[] hexnum = new char;

Scanner scan = new Scanner(System.in);

System.out.print("Enter the Binary Number: ");
int binnum = scan.nextInt();

for(hexDigit=0; binnum!=0; binnum /= 10)
{
hexDigit = hexDigit + ((binnum%10)*m);
if(c%4==0)
{
if(hexDigit<10)
hexnum[i] = (char)(hexDigit+48);
else
hexnum[i] = (char)(hexDigit+55);
m = 1;
c = 1;
hexDigit = 0;
i++;
}
else
{
m = m*2;
c++;
}
}

if(c!=1)
hexnum[i] = (char)(hexDigit+48);
if(c==1)
i--;