【发布时间】:2015-03-09 07:10:24
【问题描述】:
我正在使用 Java SE 开发套件 8 更新 25(64 位)。 我已经阅读了来自The Java™ Tutorials 的“原始数据类型”java 教程,根据这个规范,long 类型可以保持 (2 的 64 次幂)-1 的最大值,即 18446744073709551615。
但是下面的代码会抛出“整数太大”的错误信息。
public class SampleClass
{
public static void main (String[] args)
{
Long longMaxValue= 18446744073709551615L /* UInt64.MaxValue */;
}
}
Long.Max_Value 也只返回 9223372036854775807 。为什么?我需要将值 18,446,744,073,709,551,615 作为常量存储在 java 中。我该怎么办?
如有任何帮助,将不胜感激。
【问题讨论】:
-
“代码”下方在哪里?
-
来自 javadoc :带符号的 long 的最小值为 -2 的 63 次方,最大值为 2 的 63-1 次方。在 Java SE 8 及更高版本中,您可以使用 long 数据类型来表示无符号的 64 位 long,其最小值为 0,最大值为 2 的 64-1 次方
-
是 aberry,正在使用的值是(2 的 64 次方)-1,相当于 18446744073709551615,我使用的是 java SE 8。那么为什么会出现错误?