convert hexadecimal number to binary

int hex=Integer.parseInt(str.trim(),16);
String binary=Integer.toBinaryString(hex);

i have a array of hexadecimal numbers as strings and i want to convert those numbers to binary string, above is the code i used and in there, i get a error as shown below

Exception in thread "main" java.lang.NumberFormatException: For input string: "e24dd004"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at sew1.javascript.main(javascript.java:20)
Jon Skeet
people
quotationmark

The problem is that e24dd004 is larger than int can handle in Java. If you use long, it will be fine:

String str = "e24dd004";
long hex = Long.parseLong(str.trim(),16);
String binary=Long.toBinaryString(hex);
System.out.println(binary);

That will be valid for hex up to 7fffffffffffffff.

An alternative, however, would be to do a direct conversion of each hex digit to 4 binary digits, without ever converting to a numeric value. One simple way of doing that would be to have a Map<Character, String> where each string is 4 digits. That will potentially leave you with leading 0s of course.

people

See more on this question at Stackoverflow