Vai*_*hav 10 c++ types largenumber
我必须将号码存储600851475143在我的程序中.我试图将它存储在long long int变量中,long double但是在编译时它会显示错误
integer constant is too large for "long" type.
Run Code Online (Sandbox Code Playgroud)
我也试过unsigned long long int了.我正在使用MinGW 5.1.6在Windows上运行g ++.
我应该使用什么数据类型来存储号码?
Pet*_*der 28
long long 很好,但你必须在文字上使用后缀.
long long x = 600851475143ll; // can use LL instead if you prefer.
Run Code Online (Sandbox Code Playgroud)
如果你离开ll文字的末尾,那么编译器假定你想要它是一个int,在大多数情况下是一个32位有符号数.32位不足以存储那么大的值,因此警告.通过添加ll,您向编译器表明文字应该被解释为a 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)
}
Run Code Online (Sandbox Code Playgroud)
你有正确的想法long long int(或unsigned long long int),但为了防止警告,你需要告诉编译器常量是long long int:
long long int value = 600851475143LL;
Run Code Online (Sandbox Code Playgroud)
那些"L"可以是小写的,但我建议反对它 - 取决于字体,小写的"L"通常看起来很像一位数("1").
| 归档时间: |
|
| 查看次数: |
22103 次 |
| 最近记录: |