6

大きな整数のライブラリを探していますが、幅は固定されています (128 または 256 で十分です)。その理由は、ヒープに割り当てたくないからです。私はそれらを自分で作ろうとしましたが、効率的な方法で乗算、除算、剰余を実装するのはかなり面倒です。

これはすでにどこかに存在しますか?

ありがとう

4

3 に答える 3

4

GMP ライブラリを見てみましょう: www.gmplib.org

関数カテゴリからの引用:

低レベルの正の整数で、使いにくく、オーバーヘッドが非常に低い関数は、mpn カテゴリに含まれます。メモリ管理は実行されません。呼び出し元は、結果に十分なスペースを確保する必要があります。(...)

それが必要なようです。

于 2009-11-29T17:16:14.940 に答える
3

これは少なくとも有望に見えます ( int128 libraryGoogle で 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で非常に優れた関数がいくつか紹介されています。割り当てを行わない (すべてを制御する) 低レベルのインターフェイスが 1 つあります。次に、ヒープ上で徐々に多くの割り当てを管理する 2 つの高レベルのインターフェイスがあります。

于 2009-11-30T01:15:41.400 に答える