我想将十六进制字符串转换为十进制,但我在以下代码中遇到错误:
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)
答案 0 :(得分:13)
23e90b831b74
太大而无法放入int
。
您可以通过计算数字轻松查看。十六进制数中的每两位数字需要一个字节,因此12位数字需要6个字节,而int
只需要4个字节。
使用Long.parseLong
。
String hexValue = "23e90b831b74";
long l = Long.parseLong(hexValue, 16);