11

最初に質問する必要があります:
Java の現在の実装 128b UINT を知っている人はいますか?

自然な枢機卿の値を保持するものが必要です。例:巨大なカウンター。
遅くて不変の BigInteger を知っています。128b UINT は理にかなっています...

プリミティブ long のペアを使用して、OWORD を実装することを考えていました。

オーバーフローはラップアラウンドではなく例外をスローします。

このクラスの動作を実装するために、どのソースコード/ブログの例を見る必要がありますか?

4

3 に答える 3

3

キャリービット、オーバーフロー検出、および乗算の追加精度を得るには、より大きな型 (long) が必要なため、表現として 32 ビット整数を使用します。32 ビット整数を数字と考えて、小学校のアルゴリズムを適用してください。

于 2009-07-08T10:28:27.793 に答える
2

各ビットに 1 つずつ、合計 128 の静的セッターとゲッターを用意する予定だとは言わないでください。私は間違いなく、インスタンスメソッドとして setBit(int index, boolean value) と getBit(int index) を選びます。

さらに必要なもの: 人間が読める表現を取得できる toString() メソッド (ある時点で数値を出力したいと思うでしょう)。

Java のすべての序数型は (char を除いて) 符号付きであることを思い出してください。そのため、2 つの long を使用する予定がある場合は、オーバーフローなどを検出するために下部が問題になる可能性があることに常に留意してください。とにかく、下位部分が 63 ビットの符号なしとして扱われる場合を除き、127 ビットの数値を持ちます。

于 2009-07-08T10:33:49.450 に答える
-2

なぜ BigInteger を使用しないのですか?

于 2009-07-08T09:03:31.443 に答える