Java Long.MAX_VALUE 属性 抛出 "integer number too large" 异常!我包括 "L"
Java Long.MAX_VALUE property throws "integer number too large" exception! Am including "L"
我正在使用 Java SE 开发套件 8 更新 25(64 位)。
我已经阅读了 The Java™ Tutorials 中的 "Primitive Data Types" java 教程,根据此规范,long 类型可以保存(2 的 64 次方)-1 的最大值,即 18446744073709551615。
但是下面的代码抛出 "integer number too large" 错误消息。
public class SampleClass
{
public static void main (String[] args)
{
Long longMaxValue= 18446744073709551615L /* UInt64.MaxValue */;
}
}
还有 Long.Max_Value 只有 returns 9223372036854775807 。为什么?我需要将值 18,446,744,073,709,551,615 作为常量存储在 java 中。我该怎么办?
我们将不胜感激。
long 的最大正值是(2 的 63 次方)- 1,因为 Java 中的 long 是有符号的,因此可以容纳负整数。最左边的位保留给符号,剩下 63 位给值本身。
如果 Long.MAX_VALUE
不够大,您可以使用 BigInteger
。
另一种选择,如果您使用 Java 8 并希望将 long
视为无符号的,则使用 Long
的无符号方法:
例如:
long l = parseUnsignedLong("18446744073709551615");
如果用 System.out.println(l)
打印 l
,您会看到负值,但如果打印 Long.toUnsignedString(l)
,您会看到无符号值。
我正在使用 Java SE 开发套件 8 更新 25(64 位)。 我已经阅读了 The Java™ Tutorials 中的 "Primitive Data Types" java 教程,根据此规范,long 类型可以保存(2 的 64 次方)-1 的最大值,即 18446744073709551615。
但是下面的代码抛出 "integer number too large" 错误消息。
public class SampleClass
{
public static void main (String[] args)
{
Long longMaxValue= 18446744073709551615L /* UInt64.MaxValue */;
}
}
还有 Long.Max_Value 只有 returns 9223372036854775807 。为什么?我需要将值 18,446,744,073,709,551,615 作为常量存储在 java 中。我该怎么办?
我们将不胜感激。
long 的最大正值是(2 的 63 次方)- 1,因为 Java 中的 long 是有符号的,因此可以容纳负整数。最左边的位保留给符号,剩下 63 位给值本身。
如果 Long.MAX_VALUE
不够大,您可以使用 BigInteger
。
另一种选择,如果您使用 Java 8 并希望将 long
视为无符号的,则使用 Long
的无符号方法:
例如:
long l = parseUnsignedLong("18446744073709551615");
如果用 System.out.println(l)
打印 l
,您会看到负值,但如果打印 Long.toUnsignedString(l)
,您会看到无符号值。