我必须存储号码600851475143
在我的程序中。我尝试将其存储在long long int
变量和long double
也一样,但是编译时显示错误
integer constant is too large for "long" type.
我也尝试过unsigned long long int
也。我正在使用 MinGW 5.1.6 在 Windows 上运行 g++。
我应该使用什么数据类型来存储数字?
long long
很好,但你必须在文字上使用后缀。
long long x = 600851475143ll; // can use LL instead if you prefer.
如果您离开ll
离开文字的末尾,那么编译器会假设您希望它是一个int
,在大多数情况下是一个 32 位有符号数。 32 位不足以存储这么大的值,因此出现警告。通过添加ll
,您向编译器表明文字应该被解释为long long
,它足够大来存储该值。
后缀对于指定为函数调用哪个重载也很有用。例如:
void foo(long long x) {}
void foo(int x) {}
int main()
{
foo(0); // calls foo(int x)
foo(0LL); // calls foo(long long x)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)