6

I want to convert a Hex String to decimal, but I got an error in the following code:

String hexValue = "23e90b831b74";       
int i = Integer.parseInt(hexValue, 16);

The error:

Exception in thread "main" java.lang.NumberFormatException: For input string: "23e90b831b74"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:495)

1 Answer 1

13

23e90b831b74 is too large to fit in an int.

You can easily see that by counting the digits. Each two digits in a hex number requires a single byte, so 12 digits require 6 bytes, while an int only has 4 bytes.

Use Long.parseLong.

String hexValue = "23e90b831b74";       
long l = Long.parseLong(hexValue, 16);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.