加法运算中的有效数据位

    先考虑两个二进制数之间的加法(对于补码数据来说,加减法运算规则相同,因此只讨论加法运算情况)运算。设数据位较大的位数为N,则加法运算结果需要用N+1位才能保证运算结果不溢出,也就是说两个长度为N(另一个数据位长度也可以小于N)的二进制数进行加法运算,运算结果的有效数据位产长度为N+1。如果运算结果只能采用N位数据表示时,该如何对结果进行截取呢?截取后的结果如何能保证运算的正确性呢?

    对于两个长度为N的二进制数据进行加法运算,需要采用N+1位数据才能获得完全准确的结果。如果需要采用N位数据存放结果,则取低位N位会产生溢出,得出错误结果,取高N位不会出现溢出,但运算结果相当于降低了1/2。

    前面的分析实际上是将数据均当做整数,也就是说小数点位置均于最低位的右边。在数字信号处理中,定点数通常把数限制在-1~1之间。考虑小数运算时,运算结果的小数点位置又该如何确定呢?对比表中的数据(有一个表格作为分析数据的例子,这里省略了表格),如果采用N+1位数据表示运算结果,则小数点位置位于次高位的右边,而不再是最高位的右边;如果用N为数据表示运算结果,则小数点位置位于最高位的右边。也就是说,运算前后小数点右边的数据位数(也是小数位数)是恒定不变的。实际上,在Verilog HDL语言环境中,如果对两个长度为N的数据进行加法运算,为了得到N+1位的准确结果,必须先对参加运算的数进行以为符号位扩展。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值