使用BigInteger.pow()方法和Math.abs()函数解决
当使用BigInteger进行指数运算时,如果指数是负数,则会抛出ArithmeticException异常。这是因为BigInteger没有实现负数指数的幂运算。
为了解决这个问题,可以使用Math.abs()函数取绝对值,并使用BigInteger.pow()方法来执行幂运算,如下所示:
//使用BigInteger.pow()方法和Math.abs()函数计算负数指数的幂运算 BigInteger base = BigInteger.valueOf(2); int exponent = -3; BigInteger result = base.pow(Math.abs(exponent));
//输出结果 System.out.println(result); //输出1/8
在上面的代码中,我们计算2的-3次幂。使用Math.abs()函数使指数值变为正数。然后,我们使用BigInteger.pow()方法执行幂运算,并将结果存储在BigInteger对象中。
这样就可以避免因为负数指数而导致的运算失败。