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

时间:2016-02-07 04:33:45

标签: c++ integer overflow

我正在编码包含非常大数字的问题。 我遇到了如何处理整数溢出的问题。 当我添加多个大数字时,我得到一个负数。 我怎么处理这个?我的数据类型也是

    unsigned long long p=0;

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

2 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点。您可以使用boost's multi-precision library来存储128位变量。

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

答案 1 :(得分:0)

如果你不介意失去一些精确度,你可以使用类似双(或长双)的东西,它可以容纳任意大的数字。由于你使用很长的时间,听起来保持完美准确性的唯一选择是要么使用实现它的库,要么自己写一个,其中较大的数字必须保存在代表那些较大数字的另一个长长度中,并且数学运算必须考虑存储大于long long的值。