补码溢出判断

本文探讨了如何判断补码表示的加法是否溢出,重点在于分析加法的四种情况及其进位特点,通过枚举4bit二进制示例,得出溢出条件是符号位进位和最高有效位进位的异或结果。并给出了Verilog实现加法及溢出判断的示例。
摘要由CSDN通过智能技术生成

补码可以将减法转化为加法,但有些电路需要判断加法是否溢出。

判断方法

判断加法是否溢出的条件是最高有效位和符号有效位。

判断情况

对于Nbit的二进制数,符号位为最高位,最高有效位为符号位的低1位。加法有四种情况

[正]+[负]

[负]+[正]

[正]+[正]

[负]+[负]

其中[负]+[正] 和[正]+[负]是一定不会溢出的,但是它们的符号位进位和有效位进位有可能有变化。所以也需要考虑进来。

判断枚举

以4bit的二进制为例,

正大Pmax_4 = 0111 (7)

正小Pmin_4 = 0001 (7)

负大Nmax_4 = 1111 (-1)

负小Nmin_4 = 1000 (-8)

不考虑0000,因为它对加法实际没影响。

已经排除交换律的组合。

情况 符号位 最高有效位 符号位进位 最高有效位进位 溢出
P m a x + P m a x = 1110 P_{max}+P_{max}=1110 Pmax+Pmax=1110 1 0 N Y Y
P m a x + P m i n = 1000 P_{max}+P_{min}=1000 Pmax+Pmin=1000 1 0 N Y Y
P m i n + P m i n = 0010 P_{min}+P_{min}=0010 Pmin
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值