与afreez一起学习DSP中浮点转定点运算--定点数的加减乘除运算

3.定点数的加减乘除运算

简单的说,各种运算的原则就是先把待运算的数据放大一定的倍数,在运算的过程中使用的放大的数据,在最终需要输出结果的时候再调整回去。

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

声明:
 
此文为原创,欢迎转载,转载请保留如下信息
 
作者:afreez 北京-中关村
 
联系方式:afreez.gan@gmail.com (欢迎与作者交流)
 
初次发布时间: 2007-02-08

初次发布在: http://blog.csdn.net/ganxingming/ 

不经本人同意,不得用语商业或赢利性质目的,否则,作者有权追究相关责任!
---------------------------------------------------------
 

举个例来说,有如下运算:

// coefs1 = 0.023423; coefs2=0.2131

float coefs1,coefs2;

int result;

result = 34* coefs1+72* coefs2;

代码的意思是,该模块需要输出一个整型的结果,但计算的过程中有浮点的运算。如果在定点的DSP中,这段代码是无法运行的。

为了解决这个问题,我们可以这样处理:首先,把coefs1coefs2等类似的浮点数据扩大一定的倍数(具体扩大多少倍,依据精度要求不同),我们暂且把小数点向右移动4位,也就是扩大的倍数为:*10000,在最终的输出的时候在缩小相同的倍数。修改后的代码大致如下:

// coefs1 = 234; coefs2= 2131

int coefs1,coefs2;

int result;

result = 34* coefs1+72* coefs2;

result /= 10000;

当然,上面的例子为了大家好理解,写的可能不是太正确,不过基本的精髓应该是这些了。具体的处理过程,大家可以在网上搜索“第3  DSP芯片的定点运算.doc”这篇文章,写的很具体,这里不再罗嗦了。 

 

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

声明:
 
此文为原创,欢迎转载,转载请保留如下信息
 
作者:afreez 北京-中关村
 
联系方式:afreez.gan@gmail.com (欢迎与作者交流)
 
初次发布时间: 2007-02-08

初次发布在: http://blog.csdn.net/ganxingming/ 

不经本人同意,不得用语商业或赢利性质目的,否则,作者有权追究相关责任!
---------------------------------------------------------

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值