Есть ли функция или любой другой способ вычисления в C логарифма базы x
, где x
является целочисленной переменной моей программы?
Функция логарифма произвольной целочисленной базы в C
Ответ 1
C не предоставляет функции для вычисления логарифмов любых оснований, отличных от e
или 10
.
Так просто используйте математику:
logarithm of x base b = log(x)/log(b)
Если вы будете повторять логарифмы по одной и той же базе данных, вы можете прекомпилировать 1/log(b)
.
Я бы не стал полагаться на компилятор, который мог бы сделать эту оптимизацию для вас.