Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++中大数的处理_C++ - Fatal编程技术网

C++中大数的处理

C++中大数的处理,c++,C++,我正在使用devc++ 这条不稳定的线是 long long n=600851475143; 错误说明: 我在处理大数字时需要帮助。在后面加个LL long long n=600851475143LL; 追加LL使其成为一个长文本。顺便说一句,直到C++11,long-long才被标准化。不带后缀的整型常量得到int-long-int和long-long-int中可以保存值2.14.2的最小值,如表6所示,假设该值需要long-long,600851475413的类型为long-long。从

我正在使用devc++

这条不稳定的线是

long long n=600851475143;
错误说明:

我在处理大数字时需要帮助。

在后面加个LL

long long n=600851475143LL;

追加LL使其成为一个长文本。顺便说一句,直到C++11,long-long才被标准化。

不带后缀的整型常量得到int-long-int和long-long-int中可以保存值2.14.2的最小值,如表6所示,假设该值需要long-long,600851475413的类型为long-long。从错误消息来看,编译器似乎将常量视为long类型,而不是long-long类型。因此,添加LL是解决编译器错误的一种方法。

看起来您的编译器是++?不支持长长型井,数字应用LL后缀,在Visual C++中不支持。请尝试使用_int64代替n:

__int64 n=600851475143;

gcc和Visual C都支持Windows上的int64。

您使用的编译器/操作系统/内存模型是什么?您的意思是LL而不是L吗?L使其变长,而原始海报收到的错误消息将暗示常量不适合长类型。@PhilipKendall哎呀,是的,我做了。据我所知,这是C++11的一个特性。对于C++98,这不是一个bug。@PhilipKendall-long-long来自C99,C99在这里有相同的要求。无论如何,支持long-long但不支持整数常量的隐式类型显然是一个bug。
long long n = 600851475143LL;
__int64 n=600851475143;