Reputation: 2086
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)
Upvotes: 6
Views: 3999
Reputation: 393821
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);
Upvotes: 14