C语言的对数基数为2

时间:2016-11-30 23:23:16

标签: c logarithm

拜托,有人可以帮我解决如何在C中计算简单的log2吗?我尝试使用此代码,但它不起作用:

printf( "log( %f ) = %f\n", x, log2(x) );

2 个答案:

答案 0 :(得分:3)

#include <stdio.h>
#include <math.h>

int main() {
    double x = 42.0;

    printf( "log( %f ) = %f\n", x, log2(x) );

    return 0;
}

输出

% ./a.out
log( 42.000000 ) = 5.392317
%

答案 1 :(得分:2)

您还可以创建一个帮助函数,该函数可以转换为您希望的任何日志库:

这样的事情:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double 
my_log(double x, int base) { 
    return log(x) / log(base); 
} 

int 
main(void) {
    double x = 42.0;

    printf("log(%f) = %f\n", x, my_log(x, 2));

    return 0;
}

编译:

gcc -Wall -o logprog logprog.c -lm

输出:

log(42.000000) = 5.392317