2012-05-14 24 views
10

C++で優れた基本的なBigIntクラスを探していますが、多くの実装がありますが、ほとんどの場合、暗号ライブラリの複雑な実装です...C++でのBigIntクラスの基本的な実装

基本的に、BigIntはBigInt、long long、演算子のオーバーロードを伴う文字列を扱うことができます。 時間があれば、自分でやりましたが、BigIntクラス全体を作成する時間がありません。

+3

GMPにはクラスラッパーがありますか? –

+0

@SethCarnegie:はい、GMPはC言語です(現代のC++では演算子のオーバーロードを使用したいと思っています) – Bebeoix

+0

Cではクラスがないため_class wrapper_は必ずC++になります。 –

答えて

5

Here's one。私はそれを使用していないが、それはあまりにも複雑に見えないし、私が "bigint C++"をgoogledしたときの最初の結果だった。

+0

BigInsignedやBigUnsignedInABaseのようなBigInteger以外の多くの型を扱うライブラリは、1つのBigIntクラスよりも簡単ではありません。 – Bebeoix

+0

BigUnsignedInABaseが必要ない場合は、自由に使用することができます。個人的には、もっとシンプルなものは見つけられないと思います。それを取るか、それを残す。 –

+0

私はもっと基本的な/簡単な何かを疑っていた。 – Bebeoix

17

私が知っている最も単純なライブラリはInfIntです。これはただ1つのヘッダーファイルで構成されています。その使用法はかなり簡単です。以下はサンプルコードです:

InfInt myint1 = "15432154865413186646848435184100510168404641560358"; 
InfInt myint2 = 156341300544608LL; 

myint1 *= --myint2 - 3; 
std::cout << myint1 << std::endl; 
+0

[InfInt github](https://github.com/sercantutar/infint)への更新リンクがあります。 [InfInt.h](https://web.archive.org/web/20170509111229/https://raw.githubusercontent.com/sercantutar/infint/master/InfInt.h)の永続的なダウンロードリンクは次のとおりです。 – Hydranix

関連する問題