3

BigInteger クラスのソース コードは、BigIntegerの大きさの表現に関して次のように言う必要があります。

この BigInteger の大きさ (ビッグ エンディアン順): この配列の 0 番目の要素は、大きさの最も重要な int です。最上位の int (mag[0]) が非ゼロでなければならないという点で、マグニチュードは「最小」でなければなりません。これは、各 BigInteger 値に対して正確に 1 つの表現が存在することを保証するために必要です。これは、BigInteger ゼロがゼロ長の mag 配列を持つことを意味することに注意してください。

この文脈における大きさの最小性とは何を意味するのでしょうか? また、最も重要な int をゼロ以外にすることで、各値の正確な表現をどのように保証しますか?BigInteger

4

1 に答える 1

7

大まかに訳すと、これは BigIntegers の表現に先行ゼロを含めるべきではないということです。「最小」という言葉が使用されるのは、この方法で表される BigInteger が最小長の配列で表されるためです (先行ゼロを除いて同一の配列は同じ BigInteger を表すため、「それぞれに対して正確に 1 つの表現が存在しないためです」 BigInteger 値")。

編集して追加: もちろん、値 0 は長さ 0 の配列で表すことができるため、「最上位の int はゼロであってはならない」という要件に違反しないことが保証されます。

于 2013-03-12T14:19:13.560 に答える