救急!如何计算对数

2020-02-04 09:29发布

做个东西需显示出增益,但不知道如何用C语言写程序计算对数。有知道的朋友请教教。能算出A=LG(X)的也行。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
gamethink
1楼-- · 2020-02-05 15:42
mk
cgbabc
2楼-- · 2020-02-05 20:12
mark
eduhf_123
3楼-- · 2020-02-05 20:41
查看编译器的.includemath.h文件、查阅编译器的帮助。
cowboy
4楼-- · 2020-02-05 23:47
 精彩回答 2  元偷偷看……
1ongquan
5楼-- · 2020-02-06 05:07
mark
ni_fogota
6楼-- · 2020-02-06 05:09
回复【10楼】cowboy
这个是否可以这样计算?
设 a 为 1~65535,且a的二进制数为:
    0 0 0 0 0 1 x x x x x x x x x x  
    \___ ___/   \___ ___/
        v           v
    前面n个0    i取5位二进制数,不足5位后面补0
则a的分贝值可表示为:
    90-6*n+log_tab
n和i可以轻松以移位求得。而对数表如下:
unsigned char log_tab[32]={0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,5,};
式中常90为log(32768)*20,系数6为log(2)*20

-----------------------------------------------------------------------

好牛X,完全看不明白。。。

言归正传:
CPU是不支持对数的,所以如果对数运算能转换成移位和四则运算就最好,否则示符运算的密度,
如果隅尔求对数,或几秒才求一次,可用mach.h上的办法,或用展开式法,来写算法。
否则,一定要用查表法,才能提速。
一定要设法减少运算量,即对整个算式查表。

一周热门 更多>