0

我不明白加法和减法之间的区别,我试图查找它但仍然没有答案。请用最简单的方式解释。

我知道何时添加超过了用于存储它的整数类型的最大大小。当发生整数溢出时,解释的值似乎已经“环绕”了最大值并从最小值重新开始,但是如何,有什么条件可以防止这种情况发生?

4

1 回答 1

0

相关:http ://teaching.idallen.com/dat2343/10f/notes/040_overflow.txt 这是关于 x86 的进位(无符号)和溢出(有符号)标志。

对于 MIPS,请牢记这一点:add将捕获 x86 设置 OF 的任何时间。

(a+b) < a在 MIPS 中,您可以使用无符号比较从加法中获得进位。或者对于一个(a-b) > a未签名的子。

我想您也可以在subu使用带(a-b) > a符号比较之后检测到带符号溢出。因此,如果您不想a-b溢出,请选择您的输入,使包装的结果介于 INT_MIN 和 INT_MAX 之间。就这些。

于 2017-10-18T14:59:27.207 回答