定点c程序之五:定点数的字长效应

本文探讨了定点数运算过程中的关键处理方法,包括饱和处理、截尾处理及四舍五入处理,以应对字长效应导致的动态范围限制。此外,还介绍了归一化处理在确保最大精度方面的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于定点数的字长效应,其数值表示的动态范围较小,在运算过程中需要进行:
饱和处理(Saturation)
当运算(如累加、乘法等)超出最大、最小范围时,将超出最大值的数置为最大能表示的数值(如MAX16、MAX32等);将小于最小值的数表示为最小能表示的数值(如MIN16、MIN32等)。

在累加和乘运算中,结果往往会超出原操作数的字长。例如,两个16位的数相乘得到的是32位的乘积,而结果保存只希望高16比特被存储,即将累加器中的高16比特数存储到普通存储单元,这时,需要对低位比特进行处理:

截尾处理
直接丢弃低16比特。简单,但误差较大;
四舍五入处理(Rounding)
X+0.5,然后做截尾处理
归一化处理
  通常对定标浮点数每做一次变化都要重新进行归一化,归一化是为了使其尾数的绝对值在16384~32767之间,从而保证最大的精度。有的DSP处理器提供归一化的指令,能在单指令周期内完成累加器中数值的归一化,一般是norm指令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值