当使用2的补码表示形式将两个8位数字A 7 …A 0和B 7 …B 0 (以A 0和B 0为最低有效位)相加时,使用脉动进位加法器相加。获得的总和为S 7 …S 0 ,进位为C 7 …C 0 。据说如果发生了溢出
(A)进位位C 7为1
(B)所有进位位(C 7 ,…,C 0 )为1
(C)(A 7。乙7。第7 ‘+ A 7’。乙7’。第7)为1
(d)(A 0。B 0,… S 0 ‘+ A 0′; B 0’。秒0)为1答案: (C)
说明:溢出指示结果太大或太小而无法容纳原始数据类型。
溢出标志指示签名操作的溢出条件。带符号的数字以二进制补码表示。
仅当两个正数相加且结果为负数或两个负数相加且结果为正数时,才发生溢出。否则,总和不会溢出。
因此,XOR操作可以快速确定是否存在溢出条件。 IE,
(A7。B7)⊕(S7)=(A7。B7。S7’+ A7’。B7’。S7 = 1
该解释由Mithlesh Upadhyay提供。
另一种解决方案
A7 A6 A5 A4 A3 A2 A1 A0
B7 B6 B5 B4 B3 B2 B1 B0
C6 C5 C4 C3 C2 C1 C0 // carry bits
C7 S7 S6 S5 S4 S3 S2 S1 S0 // this is the result
因此,它取决于S7的溢出。当S7为0时加上两个负数,而S7为1时加上两个正数
A7。 B7。 S7’+ A7’。 B7′.S7 = 1
此解决方案由Sumouli Chaudahry提供。这个问题的测验