JAVA将十六进制字符串转换为Int时的lang.NumberFormatException
我想将十六进制字符串转换为十进制,但以下代码中出现错误:
String hexValue = "23e90b831b74";
int i = Integer.parseInt(hexValue, 16);
错误:
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 楼答案
23e90b831b74
太大,无法装入int
你可以通过数数数字很容易看出这一点。十六进制数中的每两个数字需要一个字节,因此12个数字需要6个字节,而
int
只有4个字节使用
Long.parseLong