【发布时间】:2011-01-07 16:53:41
【问题描述】:
我需要一种将任意大小的无符号整数(以二进制格式存储)转换为十进制整数的算法。即使其易于阅读;)
我目前使用可能(或显然)有点幼稚的方法,通过除以十来连续计算模数和余数。
不幸的是,速度有点……蹩脚。
例如 我计算 2000^4000(使用我的 bignum 库)大约需要 1.5 秒(请不要燃烧 xD)。然而,包括必要的基本转换在内的打印需要大约 15 分钟,这很烦人。
我已经测试了 bc,它在不到一秒的时间内完成了这两个操作。
它是如何做到的? (不是带有 ffts 的乘法东西,以及任何只有基本转换的东西)
【问题讨论】:
-
你的 bignum 究竟是如何存储的?或者,如果您不知道,如何允许您访问它?
标签: algorithm math bignum arbitrary-precision