经过本人测试,java 中 , 一直到 2的492 次方(这么大的数,平时够用了) ;用 Math.log(n) / Math.log(x) 公式都会产生一个整数,例如
int x = 2 ;
double n = Math.pow(2, 234)
System.out.println(Math.log(n) / Math.log(x));
输出的是 234.0 ;
而到了 2的493次方,结果是493.00000000000006 ; 所以,平时用这个公式来确定n是否是2的整数次幂足够了!
程序如下:
public class Test {
public static void main(String[] args) {
// System.out.println(Math.pow(2, 23));
int x = 2 ;
double n = Math.pow(2, 493) ;
System.out.println(Math.log(n) / Math.log(x));
}
}