64 位整数与 32 位整数具有相同的限制
64bit Integer has the same limit as 32bit integer
这只是一个简短的问题,但我仍然很好奇。当我用最高值 2147483647 初始化一个 int
变量时就没问题了。但是当我想初始化一个 long
并将其分配给它的最大值时,它给了我一个 "number too large" 错误
int i = 2147483647;
long j = 9223372036854775807;
9223372036854775807
是一个 int
字面量,但太大而不适合 int
,因此出现错误。您可以使用 long
文字,而不是在其末尾添加 L
:
long j = 9223372036854775807L;
// Here --------------------^
这只是一个简短的问题,但我仍然很好奇。当我用最高值 2147483647 初始化一个 int
变量时就没问题了。但是当我想初始化一个 long
并将其分配给它的最大值时,它给了我一个 "number too large" 错误
int i = 2147483647;
long j = 9223372036854775807;
9223372036854775807
是一个 int
字面量,但太大而不适合 int
,因此出现错误。您可以使用 long
文字,而不是在其末尾添加 L
:
long j = 9223372036854775807L;
// Here --------------------^