有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    23e90b831b74太大,无法装入int

    你可以通过数数数字很容易看出这一点。十六进制数中的每两个数字需要一个字节,因此12个数字需要6个字节,而int只有4个字节

    使用Long.parseLong

    String hexValue = "23e90b831b74";       
    long l = Long.parseLong(hexValue, 16);