long val = 5000000000;
此分配期间的错误是:
int 类型的文字 5000000000 超出范围
为什么编译器在使用 typeint
声明时默认假定文字是 type long
?
long val = 5000000000;
此分配期间的错误是:
int 类型的文字 5000000000 超出范围
为什么编译器在使用 typeint
声明时默认假定文字是 type long
?
long ie 有一个特定的后缀L
。如果没有后缀,则假定 5000000000 是一种int
类型。并且 5000000000 超出int
范围,导致错误。因此,您需要L
在 5000000000 的末尾添加才能将其视为一个long
值。更改您的声明
long val = 5000000000;
至
long val = 5000000000L;
在您的号码末尾添加字母 L,如下所示
长值 = 5000000000L;
long:long 数据类型是一个 64 位有符号二进制补码整数。它的最小值为-9,223,372,036,854,775,808,最大值为9,223,372,036,854,775,807(含)。
您应该将“l”或“L”附加到显式用于初始化变量的值;甚至小到 0。
long val = 0L;