Here we are going to write a program on conversion of Binary To Hexadecimal Numbers in Java.

Binary To Hexadecimal Java Example :

import java.util.Scanner;

public class ConvertBinaryToHexadecimal {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter any Binary Number : ");
        String input = sc.nextLine();
        convertBinaryToHexadecimal(input);
    }

    public static String convertBinaryToHexadecimal(String number) {
        String hexa = "";
        char[] hex = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a',
                'b', 'c', 'd', 'e', 'f' };
        if (number != null && !number.isEmpty()) {
            int decimal = convertBinaryToDecimal(number);
            while (decimal > 0) {
                hexa = hex[decimal % 16] + hexa;
                decimal /= 16;
            }
            System.out.println("The hexa decimal number is: " + hexa);
        }

        return hexa;
    }

    public static int convertBinaryToDecimal(String number) {
        int length = number.length() - 1;
        int decimal = 0;
        if (isBinary(number)) {
            char[] digits = number.toCharArray();
            for (char digit : digits) {
                if (String.valueOf(digit).equals("1")) {
                    decimal += Math.pow(2, length);
                }
                --length;
            }
            System.out.println("The decimal number is : " + decimal);
        }
        return decimal;
    }

    public static boolean isBinary(String number) {

        boolean isBinary = false;

        if (number != null && !number.isEmpty()) {
            long num = Long.parseLong(number);
            while (num > 0) {
                if (num % 10 <= 1) {
                    isBinary = true;
                } else {
                    isBinary = false;
                    break;
                }
                num /= 10;
            }
        }

        return isBinary;
    }
}

Output :

Enter a Binary Number : 100110
The decimal number is : 38
The hexa decimal number is: 26

Happy Learning 🙂