我有一些非常大的长度,可能最多50位数字。我将其作为字符串输入。但是,我需要对其执行操作。因此,我需要将它们转换为适当的基数,比方说256。
这样做的最佳算法是什么?
多重精度算术(又名bignums)是一个很难的主题,好的算法也不直观(有关于这方面的书)。
存在一些处理bignum的库,例如GMP库(还有其他库)。他们中的大多数人都从一些硬件指令(例如带有进位的附加指令)和经过精心调整的小部分汇编代码中获利。因此,它们的性能要好于几个月后您可以编写的代码。
我强烈建议使用现有的bignum库。如果您希望自己有竞争力,写自己的书将需要花费很多年的时间。