12
long val = 5000000000;

此分配期间的错误是:

int 类型的文字 5000000000 超出范围

为什么编译器在使用 typeint声明时默认假定文字是 type long

4

4 回答 4

21

您可以使用:

long val = 5000000000L;

在这里检查

于 2013-09-12T06:12:21.263 回答
6

long ie 有一个特定的后缀L。如果没有后缀,则假定 5000000000 是一种int类型。并且 5000000000 超出int范围,导致错误。因此,您需要L在 5000000000 的末尾添加才能将其视为一个long值。更改您的声明

long val = 5000000000;

long val = 5000000000L;
于 2013-09-12T06:14:32.450 回答
3

在您的号码末尾添加字母 L,如下所示

长值 = 5000000000L;

于 2013-09-12T06:13:00.460 回答
3

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

您应该将“l”或“L”附加到显式用于初始化变量的值;甚至小到 0。

 long val = 0L;
于 2013-09-12T06:15:05.657 回答