如何实现对数计算 以10为底的log

lwq_qwl 2015-01-22 09:37:20
想请教下如何DSP系统下实现以10为底的log运算 (先不考虑查表的方法,不调用库函数 )?
对数的运算范围目前是300到5000之间的整数。
谢谢啦!
...全文
263 点赞 收藏 4
写回复
4 条回复
mLee79 2015年01月23日
就 log10(x) = log(x) / log10 啊, 算自然对数用 log( (1+x)/(1-x) ) = 2 * SUM( (x**(2*n+1) / (2*n+1) ) (n>=0) 这个级数... 用 log(x*2**n) == n*log2 + log(x) 把自变量换到 [1,2) 范围内, 算到上面的公式里就在 [0,1/3) 的范围, 要10来位的精度只要级数前面10来项就够了..
回复 点赞
赵4老师 2015年01月22日
查表
回复 点赞
lm_whales 2015年01月22日
300 =2.xx...5000=3.xxxx 其实查表很简单的, 如果是实数运算,可以用级数算,不过收敛速度可能不够快 一般数学函数,需要专门的算法, 不然的话, 虽然也能够的到结果, 不过精度,效率很成问题
回复 点赞
lm_whales 2015年01月22日
如果结果也是整数的话,除法即可
回复 点赞
发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告