将任意大数转换为256

时间:2012-01-06 13:15:40

标签: c algorithm long-integer

我有一些非常大的长度可能高达50位数。我把它作为字符串输入。但是,我需要对它执行操作。所以,我需要将它们转换为适当的基础,比方说,256。

这样做的最佳算法是什么?

1 个答案:

答案 0 :(得分:10)

多精度算术(a.k.a。bignums)是一个难题,好的算法不直观(有关于此的书籍)。

存在几个处理bignums的库,例如GMP library(还有其他的)。并且他们中的大多数都从一些硬件指令中获利(例如,使用随身携带),并使用经过仔细调整的小块汇编程序代码。因此,它们的表现要比几个月内能够编码的效果更好。

我强烈建议使用现有的bignum库。如果你想让它具有竞争力,那么写你自己就会花费你多年的工作。

另见this question的答案。