dsp两个数相加为什么要左移16位
答案:3 悬赏:30 手机版
解决时间 2021-11-25 20:31
- 提问者网友:我们很暧昧
- 2021-11-25 15:34
dsp两个数相加为什么要左移16位
最佳答案
- 五星知识达人网友:雪起风沙痕
- 2021-11-25 15:51
dsp两个数相加左移16位与具体情况有关。
dsp两个数相加,当加法或加法的结果超过16位表示范围时,则超过16位实际上就是出现了溢出。为了防止溢出采取左移16位的方法,左移16位等于乘以2的16次方,作用是放弃高16位,把低位移到高位。
当加法或加法的结果超过16位表示范围时,如果程序员事先能够了解到这种情况并且需要保持运算精度时则必须保持32位结果。如果程序中是按照16位数进行运算的,则超过16位实际上就是出现了溢出。如果不采取适当的措施则数据溢出会导致运算精度的严重恶化。一般的定点DSP芯片都没有溢出保护功能,当溢出保护功能有效时,一旦出现溢出则累加器ACC的结果为最大的饱和值(上溢为7FFFH,下溢为8001H),从而达到防止溢出引起精度严重恶化的目的。
dsp两个数相加,当加法或加法的结果超过16位表示范围时,则超过16位实际上就是出现了溢出。为了防止溢出采取左移16位的方法,左移16位等于乘以2的16次方,作用是放弃高16位,把低位移到高位。
当加法或加法的结果超过16位表示范围时,如果程序员事先能够了解到这种情况并且需要保持运算精度时则必须保持32位结果。如果程序中是按照16位数进行运算的,则超过16位实际上就是出现了溢出。如果不采取适当的措施则数据溢出会导致运算精度的严重恶化。一般的定点DSP芯片都没有溢出保护功能,当溢出保护功能有效时,一旦出现溢出则累加器ACC的结果为最大的饱和值(上溢为7FFFH,下溢为8001H),从而达到防止溢出引起精度严重恶化的目的。
全部回答
- 1楼网友:轻熟杀无赦
- 2021-11-25 18:07
只能根据题目推测了
1)这两个数都偏小,和定义是32位的,所以左移16位,使精度提高
2)根据上下程序需要,可能需要赋予的变量定义有关
1)这两个数都偏小,和定义是32位的,所以左移16位,使精度提高
2)根据上下程序需要,可能需要赋予的变量定义有关
- 2楼网友:雾月
- 2021-11-25 16:35
只能根据题目推测了
1)这两个数都偏小,和定义是32位的,所以左移16位,使精度提高
2)根据上下程序需要,可能需要赋予的变量定义有关
如果没有帮到你,可以把原程序分享一下,进一步作答
1)这两个数都偏小,和定义是32位的,所以左移16位,使精度提高
2)根据上下程序需要,可能需要赋予的变量定义有关
如果没有帮到你,可以把原程序分享一下,进一步作答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯