欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c语言中ln,lg,log的表示。

程序员文章站 2024-02-27 17:20:33
...

c标准math.h中有两个与log有关的函数。

  double __cdecl log(double _X);
  double __cdecl log10(double _X); 

其中log相当于数学中的ln。
而log10相当于数学中的lg。
loge和log10可以直接表示了。
如下:
(ps:第三行是c语言中取e值的方法,是笔者想出来的哦。。不用循环很多次逼近,可以直接得到很精确的e值了。至于为什用2,用其它数也是可以的,但是笔者试了好多次,发现用2取得的值比较精确。
ps:用定义算应该是不行的,c语言里没有直接表示无穷的方法。)

#include <math.h>
#include <stdio.h>
const double e	= pow(2.0,1.0/log(2.0));//可以用这个方法获得比较精确的e值。
int main()
{
	printf("%.6lf\n", log10(10.0));
	printf("%.6lf\n", log(e));
	return 0;
}

输出:

1.000000
1.000000

如果想求logab的对数,可以用换底公式。
c语言中ln,lg,log的表示。
把logab换成以10或e为底的对数就好了。
例如:求log28
log28=lg8/lg2

#include <stdio.h>
#include <math.h>
int main()
{
	printf("%.6lf\n", log10(8.0)/log10(2.0));
	return 0;
}

输出:

3.000000