我没有得到加法和减法之间的区别,我试图查找但仍然没有答案。请以最简单的方式解释。
我知道添加时,超过用于存储它的整数类型的最大大小。当发生整数溢出时,解释的值将显示为“包裹”最大值并再次以最小值开始,但是如何,有什么条件可以防止这种情况发生。
先谢谢。
答案 0 :(得分:0)
相关:http://teaching.idallen.com/dat2343/10f/notes/040_overflow.txt它是关于x86的进位(无符号)和溢出(有符号)标志。
对于MIPS,请记住这一点:add
将在x86设置OF时随时捕获。
在MIPS中,您可以使用(a+b) < a
无符号比较从添加中获取结转。或者对于子(a-b) > a
无符号。
我猜你也可以在subu
签名比较(a-b) > a
之后检测签名溢出。因此,如果您希望a-b
不溢出,请选择您的输入,使得非包装结果介于INT_MIN和INT_MAX之间。就是这样。