我有代码可以从给定的输入中获取指数值:
BigInteger a= new BigInteger(2,10);
BigInteger b;
b=a.pow(9999999999);
当值低于 7 位时才起作用。例如:
BigInteger a= new BigInteger(2,10);
BigInteger b;
b=a.pow(1234567);
我的代码可以实现指数中包含 10 位数字吗?
我使用的是 JDK 1.8。
最佳答案
BigInteger.pow()
仅适用于 int
参数,因此您不能一次获取大于 Integer.MAX_VALUE
的幂。
如果你能做到的话,这些数字也会难以置信地大(就像“快速接近并通过可观测宇宙中的粒子数量)”,但这种做法的用途很少。
请注意,密码学中经常使用的“幂取模”运算是使用 BigInteger.modPow()
实现的。其中确实采用BigInteger
参数,因此可以有效地处理任意大的值。
关于java - Java Biginteger 在 pow 中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58180872/