2

私はどこかで、大きな数の算術(本当に本当に大きい)を処理するために、最大平方根(MAXNUMBER)の大きなベースに数を格納する必要があることを読みました。より大きなベースで数値を表すには、必要な桁数が少ないためです。たとえば、10進数で120=2進数システムで1111000です。それで、もし私たちが大きな数を大きなベースに格納するなら、それは最低レベルのビット数を減らすのでしょうか?16進法の数字は、紙では確かに少数の桁を取りますが、ハードウェアでは取りませんので、私はそうは思いません。

ここで何かが足りないと思います。誰かが私がビットレベルでより少ないビット数で大きなベース数を格納する方法を理解するのを手伝ってもらえますか?

4

2 に答える 2

0

使用するエンコーディングに依存します..常にバイナリコード化された 10 進数を実行できます。この場合、個々の 2 進数を 4 つのバイナリ ビットでコーディングできます。または、128 ビット数などの数値に拡張バイナリ表現を使用することもできます..上記の両方のソリューションをオンラインで実行できるライブラリを見つけることができるはずです。PS BCD は、小さい数値の場合は小さいスペースを使用しますが、大きい数値の場合は膨大な量のビットを必要とします。おそらく、それほど無駄ではない BCD のバリエーションを見つけることができます。

于 2011-07-18T14:45:14.507 に答える
0

アイデアは、より少ないビットで数値を表すことです。数値 1,000,000,000,002 を 1,000,000^2 として表すことができます。もちろん、精度は低下しますが、非常に大きな数値であれば、通常は精度の低下を気にする必要はありません。

于 2011-07-18T14:31:48.603 に答える