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 将用一个整数表示每个三元组,依此类推。
最近我需要一个 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 将用一个整数表示每个三元组,依此类推。