10
整数のJavaで対数の底2をどのように計算しますか?
次の関数を使用して、整数の2を底とする対数を計算します。 public static int log2(int n){ if(n <= 0) throw new IllegalArgumentException(); return 31 - Integer.numberOfLeadingZeros(n); } 最適なパフォーマンスはありますか? 誰かがその目的のために準備ができているJ2SE API関数を知っていますか? UPD1 驚いたことに、浮動小数点演算は整数演算よりも高速に見えます。 UPD2 コメントのため、より詳細な調査を行います。 UPD3 私の整数演算関数は、Math.log(n)/Math.log(2)よりも10倍高速です。