0
Integer.parseInt("ff8ca87c", 16);

由于某种原因,这给了我一个 NumberFormatException 。你知道这是为什么吗?

Exception in thread "main" java.lang.NumberFormatException: For input string: "ff8ca87c"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.valueOf(Unknown Source)
4

1 回答 1

6

它失败的原因是你试图放入+0xff8ca87c一个有符号整数。32 位有符号整数的最大值是+0x7fffffff,因为最高有效位用于存储符号。

尝试使用 along代替。64 位有符号整数的最大值是0x7fffffffffffffff,在这种情况下,这足以满足您的需求。

或者,在 Java 8 中,您可以使用Integer.parseUnsignedInt("ff8ca87c", 16);which 将值视为无符号整数。

于 2012-02-08T09:36:08.883 回答