二元运算溢出进行减法

问题描述 投票:0回答:0

网站www.doc.ic.ac.uk

如果2的补数相减,并且它们的符号不同,则当且仅当结果与减数的符号相同时才会发生溢出。

发生溢出如果

(+A) − (−B) = −C
(−A) − (+B) = +C

在表达式中 0x00 - 0x80 == 0x80 应该不会溢出,因为:

   0000 0000
-  1000 0000
   ---------
[1]1000 0000

减数 MSB (0) != 减数 MSB (1) && 减数 MSB (1) == 结果 MSB (1)

但是ALU模拟器没有显示溢出

integer-arithmetic
© www.soinside.com 2019 - 2024. All rights reserved.