2 23,000BigInteger
のデータ型の値を見つけようとすると、値が表示されません。
ただし、2 22,000BigInteger
までの計算では、問題なく値を表示できました。
これの解決策や理由はありますか?
2 23,000BigInteger
のデータ型の値を見つけようとすると、値が表示されません。
ただし、2 22,000BigInteger
までの計算では、問題なく値を表示できました。
これの解決策や理由はありますか?
BigInteger
を表現するために、次のことを試しました2^23000
。
BigInteger bi = new BigInteger("2");
bi = bi.pow(23000);
System.out.println(bi);
そして表示された数字は6925桁にも及ぶ非常に大きな数字でした。(100行以上になるので貼りません。)
これは、Windows XP の Java 6 SE バージョン 1.6.0_12 にあります。
API 仕様によると、BigInteger
は任意精度の整数値であり、非常に大きな整数値に対応できるはずです。
GNU/Linux では問題なく動作します。「表示」できないとはどういう意味ですか? あなたのコードは何ですか?どのようなエラー/問題が発生していますか?
BigInteger のこの制限は約 2^16 億ですが、約 2^2 億を超えると一部の関数が正しく動作しないことが指摘されています。
私の推測では、コンソールまたは IDE で非常に長い行を表示する際に問題が発生していると思われます。
全部必要ですか?BigInteger.modpow(power、modulus)メソッドもあります。このメソッドは、整数値を指定された累乗に上げ、結果の%modulusを返します。これは暗号化で一般的に使用されます。これは、非常に大きな指数を処理する場合にもはるかに高速です。