6

我正在寻找一个用于大整数但宽度固定的库(128 或 256 就足够了)。原因是我不想在堆上进行任何分配。我试图自己制作它们,但以一种有效的方式实现乘法、除法和取模似乎很痛苦。

这是否已经存在于某个地方?

谢谢

4

3 回答 3

4

看看 GMP 库:www.gmplib.org

引用功能类别:

在 mpn 类别中可以找到低级正整数、难以使用、开销非常低的函数。不执行内存管理;调用者必须确保有足够的空间用于结果。(...)

这似乎是你需要的。

于 2009-11-29T17:16:14.940 回答
3

这至少看起来很有希望(int128 library在 Google 上排名第 8)。

http://www.mx-3.cz/tringi/www/langen.php?id=int128

“与其他大量类不同,您可以像使用其他 POD 类型一样使用它们(例如使用 fwrite/fread 从文件存储和加载)。这些的内部表示是正确的 128 位小端整数。”

于 2009-11-29T18:16:33.947 回答
2

如果你觉得 GMP 对你的口味来说太复杂了,Dave Hanson 在他的书C Interfaces and Implementations中有一些非常好的函数。有一个不进行分配的低级接口(您控制一切),然后有两个更高级别的接口在堆上逐步管理更多分配。

于 2009-11-30T01:15:41.400 回答