Car*_*ten 17
你似乎并不想为底数的对数b,但最大的整数n,这样n <= log_b(x).如果是这种情况,以下功能应满足您的需求:
int intlog(double base, double x) {
return (int)(log(x) / log(base));
}
Run Code Online (Sandbox Code Playgroud)
小智 6
如果我正确理解您的问题,那么这是一个数学问题,而不是实际的编程问题:
log_2 (x) = log_a (x) / log_a (2) 其中a可以是任何基数。
因此,您可以使用math.h的功能log(double)
double res = log(x)/log(2);