为什么4位加法器/减法器通过同时查看最后两个进位来实现其溢出检测? [英] Why does a 4 bit adder/subtractor implement its overflow detection by looking at BOTH of the last two carry-outs?
本文介绍了为什么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屋!
查看全文