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