BigInt C++ 库与基数的一致性

BigInt C++ library consistency with bases

最近我需要一个 BigInt C++ 库,我找到了 this

但我无法弄清楚顶部指定的 const int base 和 base_digits 是什么意思。

还有"base and base_digits must be consistent"是什么意思。

如果我想要 base=10,我应该选择 base_digits 的什么值?

我尝试将 base = 10 和 base_digits = 1,但输出更改为不正确的内容。

此实现的'base'用于大整数的结构表示。如果您根据数字基数的经典定义(例如基数 2 = 二进制)来考虑基数,则实现会将每个 'digit' 作为一个 int 存储在一个向量中。换句话说,该实现将您的大整数表示为以 n 为底的一个或多个 'digits' 的向量,其中 n 默认 = 1000000000。

"base and base_digits must be consistent" 只是因为实现在某些地方使用 base_digits 作为计算实际十进制(基数 10)数字中 base 值长度的快捷方式。

您不会希望使用 base = 10,因为这样您会将整数的每个单独数字表示为向量中的单独整数 - 效率不高!如果您使用 base = 100,您将在向量中用一个整数表示每对数字,base = 1000 将用一个整数表示每个三元组,依此类推。