我正在尝试用大小数C++添加减法和乘以数字。
例:
4125487821547.87879845215584844588 - 354556689.899455132265468
到目前为止,我想到的是我需要将输入保存为字符串,但不确定之后如何继续。
提前感谢帮助 谢谢
你需要一个大的整数类或库。有几种可用的实现,只是为了概述如何使用这样的外部依赖项,这里有一个基于 Boost 的解决方案:
#include <boost/multiprecision/cpp_int.hpp>
using BigInt = boost::multiprecision::cpp_int;
现在,您可以通过将字符串或整数文本传递给构造函数来构造实例,并对这些对象执行所有标准的算术运算,例如
const BigInt i("8787984521558484092344588");
const BigInt j("32308942039402934");
std::cout << i - j << "n";
此类类的一个很好的细节是,它们通常演示具有一个参数的非显式构造函数的少数合理场景之一,即,为了与内置整型的平滑互操作性。例:
int n = 42;
// Use builtin ints like BigInts via implicit BigInt(int) ctor:
std::cout << (i + n)/(j % 3) << "n";
您只需要这些代码段的 Boost 标头,不需要链接。继续使用此库时,请查看文档。