java.lang.NumberFormatException:对于输入字符串:"A3ADF30029011F"

java.lang.NumberFormatException: For input string: "A3ADF30029011F"

我正在尝试将十六进制转换为十进制和二进制,但对于给定的十六进制 "001F012900F3ADA3" 得到相同的错误,但使用任何在线转换器将相同的十六进制转换为十进制和二进制。

Integer.parseInt("001F012900F3ADA3",16);   // to decimal conversion

Integer.toBinaryString(Integer.parseInt("001F012900F3ADA3", 16));   // to binary conversion

当我像 Integer.parseInt("00F3ADA3",16); 这样使用这个 HEX 的一部分时,它工作正常,没有例外。 是否有某种允许转换的最大十六进制长度类型,或者我使用的错误请纠正我。

您尝试解析的值太大,无法用整数表示。要正确解析它,您必须解析它很长时间。

如果你把它替换成下面的,那么它就可以了。

Long.toBinaryString(Long.parseLong("001F012900F3ADA3", 16));

int的最大值为2147483647,值:001F012900F3ADA3转换为二进制数为8726999899286947