web-dev-qa-db-ja.com

Long vs BigInteger

両方のJava.lang.LongおよびJava.math.BigIntegerは非常に大きな自然数を保持できます。

Longの最大値も知っていますが、BigIntegerの最大値は何ですか?

また、容量は別として、BigIntegerは、Longの範囲に収まる一般的に大きな整数を処理する場合、パフォーマンスが向上するでしょうか?

質問

唯一の考慮事項は次のとおりです。私の値はLongに対して大きすぎますか?

33
Fritz Duchardt

BigIntegerは、Longよりもはるかに大きな数を保持できます。 BigIntegerは(2 ^ 32)^ Integer.MAX_VALUEを保持できるようです。ただし、それは実装に依存します(そして、実装に本当に制限がない場合でも、最終的に物理リソースの制限があります) ここの説明を参照 =。

Longの範囲は[-9,223,372,036,854,775,808、+9,223,372,036,854,775,807]です。

LongはBigIntegerよりもパフォーマンスが高いため、値のサイズに依存します。それらがすべてLongの最大値に該当する場合、Longを使用しないことは意味がありません。いずれかがLong max値よりも大きい場合、BigIntegerを使用する必要があります。

42
AHungerArtist