Java 快速提问,为什么我的指数被封顶?
这将输出2147483647 这显然是错误的,如果我输入其他指数,输出仍然是一样的。Java 快速提问,为什么我的指数被封顶?,java,exponent,Java,Exponent,这将输出2147483647 这显然是错误的,如果我输入其他指数,输出仍然是一样的。 如何删除此上限以及导致此上限的原因?若要删除此上限,请使用其他数据类型 int的上限为2^31-1,long的上限为2^63-1,但AFAIK biginger没有上限: public static void main(String[] args){ int res = (int)Math.pow(2017, 202); System.out.println(res); } 但是,不要将其用于普通计算,因
如何删除此上限以及导致此上限的原因?若要删除此上限,请使用其他数据类型
int
的上限为2^31-1,long
的上限为2^63-1,但AFAIK biginger没有上限:
public static void main(String[] args){
int res = (int)Math.pow(2017, 202);
System.out.println(res);
}
但是,不要将其用于普通计算,因为它要慢得多。只需使用
biginger
:biginger result=biginger.valueOf(2017)。pow(202)
如果你是为了某种编码/数学测验/问题进行计算,那么实际上根本不需要计算幂,例如,如果您以后修改了mod
BigInteger res = new BigInteger("2017").pow(202)