📌  相关文章
📜  Java番石榴 | IntMath.checkedPow(int b, int k) 方法与示例(1)

📅  最后修改于: 2023-12-03 15:16:36.173000             🧑  作者: Mango

Java番石榴 | IntMath.checkedPow(int b, int k) 方法与示例

IntMath.checkedPow(int b, int k) 方法是 Google Guava 库中的方法,用于计算 b 的 k 次方,并检查结果是否在 int 范围内。

方法概述
public static int checkedPow(int b, int k)

参数:

  • b:底数
  • k:指数

返回:

  • bk 次方

异常:

  • 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() 方法。