想知道是否有API直接计算log_2
?这是我目前的代码,我将log_2(N)
转换为log_e(N)/log_e(2)
。Java中BigInteger的log2
顺便说一句,它似乎对于普通的Java Double类型,没有方法直接计算log_2(double_value)
?
我用Java代码,
BigInteger x = BigInteger.valueOf(16);
BigInteger y = BigInteger.valueOf((long)(Math.log(x.longValue())/Math.log(2)));
System.out.println(y.doubleValue()); // return 4.0 as expected
“'Math.log(x.longValue())'”注意'log'需要一个double,所以你可以在这里使用'x.doubleValue()',因为它无论如何将会扩大。 –
@AndyTurner,同意和很好的捕获。顺便说一句,你知道是否有API直接计算log_2吗? –