我使用以下函数来计算整数的log base 2:
public static int log2(int n){
if(n <= 0) throw new IllegalArgumentException();
return 31 - Integer.numberOfLeadingZeros(n);
}
Run Code Online (Sandbox Code Playgroud)
它有最佳性能吗?
有人知道为此目的准备好J2SE API函数吗?
UPD1令 我惊讶的是,浮点算术似乎比整数算术更快.
UPD2 由于评论,我将进行更详细的调查.
UPD3 我的整数运算函数比Math.log(n)/Math.log(2)快10倍.