q15格式两个小数加减乘除相加溢出怎么处理

   许多DSP都是定点DSP处理定点数据会楿当快,但是处理浮点数据就会非常慢可以利用Q格式进行浮点数据到定点的转化,节约CPU时间实际应用中,浮点运算大都时候都是既有整数部分也有小数加减乘除部分的。所以要选择一个适当的定标格式才能更好的处理运算

  Q格式表示为:Qm.n,表示数据用m比特表示整數部分n比特表示小数加减乘除部分,共需要m+n+1位来表示这个数据多余的一位用作符合位。假设小数加减乘除点在n位的左边(从右向左数)从而确定小数加减乘除的精度

  例如Q15表示小数加减乘除部分有15位,一个short型数据占2个字节,最高位是符号位后面15位是小数加减乘除位,就假设小数加减乘除点在第15位左边表示的范围是:-1

  浮点数据转化为Q15,将数据乘以2^15;Q15数据转化为浮点数据将数据除以2^15。

  唎如:假设数据存储空间为2个字节0.333×2^15=A9F,0.333的所有运算就可以用0x2A9F表示同理10911×2^(-15)=0.875,可以看出浮点数据通过Q格式转化后是有误差的

  1> 定点加減法:须转换成相同的Q格式才能加减

  2> 定点乘法:不同Q格式的数据相乘,相当于Q值相加即Q15数据乘以Q10数据后的结果是Q25格式的数据

  3> 定點除法:不同Q格式的数据相除,相当于Q值相减

  4> 定点左移:左移相当于Q值增加

  5> 定点右移:右移相当于Q减少

  实际应用中浮点运算大都时候都是既有整数部分,也有小数加减乘除部分的所以要选择一个适当的定标格式才能更好的处理运算。一般用如下两种方法:

  1> 使用时使用适中的定标既可以表示一定的整数复位也可以表示小数加减乘除复位,如对于2812的32位系统使用Q15格式,可表示-65536.0~482区间内嘚数据

  2> 全部采用小数加减乘除,这样因为小数加减乘除之间相乘永远是小数加减乘除永远不会溢出。取一个极限最大值(最好使鼡2的n次幂)转换成x/Max的小数加减乘除(如果Max是取的2的 n次幂,就可以使用移位代替除法)


内容提示:小数加减乘除加减乘除和简便计算习题

文档格式:DOCX| 浏览次数:2| 上传日期: 17:19:58| 文档星级:?????

全文阅读已结束如果下载本文需要使用

该用户还上传了这些攵档

我要回帖

更多关于 小数加减乘除 的文章

 

随机推荐