使用非常大的数字

Using very big number

本文关键字:数字 非常      更新时间:2023-10-16

我希望使用非常大的数字(一个变量中最多 255 个数字)并在基本级别 (+、-、*、/、^ 和 √) 上操纵这些值C++但我不确定使用 bigInt (https://mattmccutchen.net/bigint/) 是否会处理这么大的数字。

与这里类似,我建议您查看Owen Astrachan的The Large Integer Case Study in C++.pdf。我发现这个文件在详细介绍和代码实现方面非常有用。它不使用任何第三方库。我已经使用它来处理巨大的数字(只要您有足够的内存来存储vector<char>)没有问题。


理念:它通过在vector<char>中存储大整数来实现任意精度整数类。

vector<char> myDigits; // stores all digits of number

那么所有与大int相关的操作,包括<<, >>, +, -, *, ==, <, !=, >, etc.,都可以基于这个char array的操作来完成。


编辑:顺便说一句,bigInt也很好。

我建议你使用GMP(https://gmplib.org)。 它适用于任意长度的数字。