📅  最后修改于: 2023-12-03 15:16:36.173000             🧑  作者: Mango
IntMath.checkedPow(int b, int k) 方法是 Google Guava 库中的方法,用于计算 b 的 k 次方,并检查结果是否在 int 范围内。
public static int checkedPow(int b, int k)
参数:
b
:底数k
:指数返回:
b
的 k
次方异常:
ArithmeticException
:如果计算结果超出 int 范围import com.google.common.math.IntMath;
public class IntMathExample {
public static void main(String[] args) {
int x = IntMath.checkedPow(2, 30); // 2^30 = 1073741824
System.out.println(x);
int y = IntMath.checkedPow(2, 31); // 抛出 ArithmeticException
System.out.println(y);
}
}
运行结果:
1073741824
Exception in thread "main" java.lang.ArithmeticException: overflow: checkedPow(2, 31)
at com.google.common.math.IntMath.checkedPow(IntMath.java:582)
at IntMathExample.main(IntMathExample.java:8)
在上面的示例中,我们调用了 IntMath.checkedPow()
方法两次。第一次计算了 2 的 30 次方,结果为 1073741824,不会抛出异常。第二次计算了 2 的 31 次方,超出了 int 范围,抛出了 ArithmeticException 异常。
checkedPow
方法不能计算负数的指数,否则会抛出 IllegalArgumentException 异常。DoubleMath.pow()
或 FloatMath.pow()
方法。