2009-11-29 5 views
6

大きな整数のライブラリを探していますが、固定幅(128または256で十分でしょう)があります。その理由は、私はヒープ上に割り当てをしたくないからです。 私はそれらを自分で作ろうとしましたが、乗算、除算、およびモジュロを効率的な方法で実装することはかなり苦しいようです。固定長の大きな整数

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

おかげ

答えて

4

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

機能カテゴリから引用:

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

あなたが必要としているようです。

+0

nice!私はこれを見ています – Ben

3

少なくともこれは有望です(Googleではint128 libraryのヒットナンバー8)。他の多数のクラスとは異なり、あなただけ(fwriteの/関数freadを使用してファイルの例ストアおよび負荷のため)他のPODのタイプと同じようにこれらを扱うことができます

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

」。これらの正しい128ビットの内部表現リトルエンディアン整数。

2

GMPがあなたの好みにあまりにも複雑すぎる場合、Dave Hanson氏の書籍には、C Interfaces and Implementationsという非常に便利な機能があります。割り当てを行わない低レベルのインターフェイスがあり(すべてを制御します)、次にヒープ上の割り当てを徐々に管理する2つの高レベルインターフェイスがあります。

+0

私はgmpで動作させましたが、私はこれを見ています – Ben