Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.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+上的整数溢出+;以及如何添加大数字_C++_Integer_Overflow - Fatal编程技术网

C++ c+上的整数溢出+;以及如何添加大数字

C++ c+上的整数溢出+;以及如何添加大数字,c++,integer,overflow,C++,Integer,Overflow,我正在编写一个包含大量数字的问题。 我遇到了一个关于如何处理整数溢出的问题。 当我加上多个大数字时,我得到一个负数。 我该怎么处理?我的数据类型也是 unsigned long long p=0; 我该怎么做才能保持正值并继续添加?有很多方法可以做到这一点。您可以使用它来存储128位变量 如果您不想安装其他库,您可以始终在数组中表示您的变量,其中每个元素都是变量的一个数字。如果您不介意丢失一些精度,您可以使用双精度(或长双精度)之类的东西,它可以容纳任意大的数字。因为您使用的是long

我正在编写一个包含大量数字的问题。 我遇到了一个关于如何处理整数溢出的问题。 当我加上多个大数字时,我得到一个负数。 我该怎么处理?我的数据类型也是

    unsigned long long p=0;

我该怎么做才能保持正值并继续添加?

有很多方法可以做到这一点。您可以使用它来存储128位变量


如果您不想安装其他库,您可以始终在数组中表示您的变量,其中每个元素都是变量的一个数字。

如果您不介意丢失一些精度,您可以使用双精度(或长双精度)之类的东西,它可以容纳任意大的数字。因为您使用的是long-long,所以要保持完美的准确性,您唯一的选择似乎是要么使用实现此功能的库,要么自己编写一个库,其中较大的数字必须保存在另一个表示较大数字的long-long中,并且数学运算必须考虑存储大于long-long的值

这可能会有帮助:您的意思是结果应该小于该类型的最大值,但会发生溢出?