0

我正在使用开发 C++

不稳定的线是...

long long n=600851475143;

错误描述

integer constant is too long for "long" type

我需要帮助来处理大数字。

4

4 回答 4

8
long long n = 600851475143LL;

附加LL使其成为long long文字。顺便说一句,long long直到 C++11 才被标准化。

于 2013-07-12T12:14:12.473 回答
2

在它后面加上一个LL。

long long n=600851475143LL;
于 2013-07-12T12:10:09.540 回答
1

看来你的编译器(g++?)不太支持long long类型,数字应该加LL后缀,Visual C++不支持。尝试使用 __int64 代替 n:

__int64 n=600851475143;

gcc 和 Visual C 在 Windows 上都支持 __int64。

于 2013-07-12T13:55:21.280 回答
1

没有后缀的整数常量取最小值,int long int并且long long int可以保存值(2.14.2,表 6),因此,假设long long该值需要 ,600851475413则类型为long long。从错误消息来看,编译器似乎将常量视为类型long而不是long long. 所以添加LL是编译器错误的解决方法。

于 2013-07-12T12:24:58.497 回答