Как вы рассчитываете основание журнала 2 в Java для целых чисел?

Я использую следующую функцию для вычисления лог-базы 2 для целых чисел:

public static int log2(int n){
    if(n <= 0) throw new IllegalArgumentException();
    return 31 - Integer.numberOfLeadingZeros(n);
}

Есть ли у него оптимальная производительность?

Кто-нибудь знает готовую функцию API J2SE для этой цели?

UPD1 Удивительно для меня, арифметика с плавающей точкой оказывается быстрее, чем целочисленная арифметика.

UPD2 Благодаря комментариям проведу более детальное расследование.

UPD3 Моя целочисленная арифметическая функция в 10 раз быстрее, чем Math.log (n) /Math.log (2).

Ответы на вопрос(10)

Ваш ответ на вопрос