2017-01-16 10 views
0

最近BigInt C++ライブラリが必要でしたが、thisが見つかりました。BigInt C++ライブラリのベースとの一貫性

しかし、私はconst int baseとbase_digitsが最上位に何を指定しているのか理解できませんでした。

また、「baseとbase_digitsは一致していなければなりません。

ベースを10にしたい場合は、base_digitsのどの値を選択すればよいですか?

私はベース= 10とbase_digits = 1を置いてみましたが、出力が何か正しくないものに変更されました。

答えて

1

この実装の「ベース」は、構造体の大きな整数の表現に使用されます。塩基数の古典的な定義(例えば、基数2 =バイナリ)の観点から基底を考えると、インプリメンテーションは各「桁」をintとしてベクトルに格納します。つまり、実装では、基数nの1つ以上の「数字」のベクトルとして大きな整数を表します.nはデフォルトで1000000000です。

base_digitsを使用するため、baseとbase_digitsは一貫していなければなりませんいくつかの場所では、実際の10進数(基数10)の数字の長さの長さを計算するためのショートカットです。

あなたは、ベクトルの中の別の整数として整数の個々の数字を表すので、あまり効率的ではないので、base = 10を使用したくないでしょう! base = 100を使用した場合、ベクトルの整数で各桁の対を表します.base = 1000は整数を持つ各トリプレットを表します。以下同様です。

+0

私はbase = 10を使用したいと思うが、あなたの説明によればbase_digitsは= 1でなければならないが、間違った結果をもたらす。 – LTim

+0

また、baseとbase_digitsの値をデフォルト以外に変更すると、間違っている、なぜそう? – LTim

+0

うん...それについては分かりません。例を挙げていただけますか?コードをスキャンすると、うまくいくかのように見えます。 –

関連する問題