2011-12-28 59 views

回答

7

因为这超出了int的范围。改为使用long/Long

+0

谢谢,我很愚蠢。我以为我在int范围内。 – Frans 2011-12-28 22:26:08

1

int在Java中签 - 这样的最大值为2 - 1

如果使用Long.parseLong(value, 16)你会得到你想要的值。如果您很乐意获得正确的位模式,则可以将其重新转换为int,但应将其解释为负值。

0

只是因为它在int的范围之外。您应该使用long数据类型。

0

Integer.MAX_VALUE是2147483647,它低于您期望的值。所以这个字符串并不代表任何可以解析成int的东西。因此例外。

0

here

int数据类型是一个32位有符号二进制补码整数。它有 最小值-2,147,483,648和最大值2,147,483,647 (含)。

3,511,280,912> 2,147,483,647,其解释了NumberFormatException。但是,您可以使用long。从同一页:

长数据类型是一个64位有符号二进制补码整数。它有 最小值-9,223,372,036,854,775,808和最大值 9,223,372,036,854,775,807(含)。