📅  最后修改于: 2023-12-03 15:16:36.208000             🧑  作者: Mango
Java番石榴是一组Java数学库,提供高精度计算和各种数学函数。其中的LongMath类提供了许多适用于整数的数学函数,log2(long x, RoundingMode mode)就是其中一个。
log2(long x, RoundingMode mode)接受一个long类型的参数x,返回以2为底的x的对数,其中mode参数指定向下取整还是向上取整。RoundingMode共有六种取值:
如果x小于等于0,函数会抛出IllegalArgumentException。
import com.google.common.math.LongMath;
import java.math.RoundingMode;
public class Log2Demo {
public static void main(String[] args) {
long x1 = 16;
long x2 = 15;
long x3 = 17;
System.out.format("log2(%d, FLOOR) = %d%n", x1, LongMath.log2(x1, RoundingMode.FLOOR));
System.out.format("log2(%d, FLOOR) = %d%n", x2, LongMath.log2(x2, RoundingMode.FLOOR));
System.out.format("log2(%d, CEILING) = %d%n", x2, LongMath.log2(x2, RoundingMode.CEILING));
try {
System.out.format("log2(%d, FLOOR) = %d%n", 0, LongMath.log2(0, RoundingMode.FLOOR));
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
输出:
log2(16, FLOOR) = 4
log2(15, FLOOR) = 3
log2(15, CEILING) = 4
x must be positive
LongMath.log2(long x, RoundingMode mode)是一个十分实用的函数,它可以帮助我们快速计算以2为底的x的对数,而且可以选择不同的取整方式。本文的示例代码也给出了log2函数的使用示例,希望对大家有所帮助。