为什么4位加法器/减法器通过同时查看最后两个进位来实现其溢出检测? [英] Why does a 4 bit adder/subtractor implement its overflow detection by looking at BOTH of the last two carry-outs?

查看:13
本文介绍了为什么4位加法器/减法器通过同时查看最后两个进位来实现其溢出检测?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我们为类提供的图表:

为什么不在此图中直接使用C4?如果C4是1,那么最后一次添加会导致溢出,这就是我们想知道的。为什么我们需要查看C3?

推荐答案

Overflow flag表示签名操作的溢出情况。

签名操作中需要记住的几点:

  • MSB始终保留表示数字符号
  • 负数表示为2的补码
  • 溢出导致无效操作

Two's complement overflow rules:

  • 如果两个正数的和产生负值,则和已溢出。
  • 如果两个负数的和产生正结果,则和已溢出。
  • 否则,总和未溢出。

例如:

**Ex1:**
 0111   (carry)  
  0101  ( 5)
+ 0011  ( 3)
==================
  1000  ( 8)     ;invalid (V=1) (C3=1) (C4=0)


**Ex2:**
 1011   (carry)  
  1001  (-7)
+ 1011  (−5)
==================
  0100  ( 4)     ;invalid (V=1) (C3=0) (C4=1)


**Ex3:**
 1110   (carry)  
  0111  ( 7)
+ 1110  (−2)
==================
  0101  ( 5)     ;valid (V=0) (C3=1) (C4=1)
在带符号运算中,如果最左边的两个进位位(在这些示例中位于顶行最左边的位)都是1或都是0,则结果是有效的;如果左边的两个进位位是"1 0"或"0 1",则发生符号溢出。方便地,对这两位进行XOR运算可以快速确定是否存在溢出条件。(参考:Two's complement)

溢出与进位:溢出可视为Carry.有符号操作中的二进制补码形式。监视溢出标志并忽略进位标志。同样,在无符号操作中,将监视进位标志,并忽略溢出标志。

这篇关于为什么4位加法器/减法器通过同时查看最后两个进位来实现其溢出检测?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆