C语言以2为底的对数
Logarithm base 2 in C language
拜托,谁能帮我用 C 语言计算一个简单的 log2?我尝试使用此代码,但它不起作用:
printf( "log( %f ) = %f\n", x, log2(x) );
#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
%
您还可以创建一个辅助函数,它可以转换为您希望的任何对数基数:
像这样:
#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
拜托,谁能帮我用 C 语言计算一个简单的 log2?我尝试使用此代码,但它不起作用:
printf( "log( %f ) = %f\n", x, log2(x) );
#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
%
您还可以创建一个辅助函数,它可以转换为您希望的任何对数基数:
像这样:
#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