Math 8位无符号数字加减溢出

Math 8位无符号数字加减溢出,math,bit-manipulation,unsigned,Math,Bit Manipulation,Unsigned,我很难理解无符号加法和减法何时发生溢出。 比如说, 1 1 1 1 0 0 0 0 + 0 0 1 1 1 0 0 0 __________________ 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 - 0 0 0 0 0 0 1 1 由于MSB中的1,因此会导致溢出。 我理解这个问题,但当涉及到减法时,我很难确定它何时溢出 比如说, 1 1 1 1 0 0 0 0 + 0 0 1 1 1 0

我很难理解无符号加法和减法何时发生溢出。 比如说,

   1 1 1 1 0 0 0 0 
+  0 0 1 1 1 0 0 0 
  __________________
   0 0 1 0 1 0 0 0 
   0 0 0 0 0 0 0 1               
-  0 0 0 0 0 0 1 1   
由于MSB中的1,因此会导致溢出。 我理解这个问题,但当涉及到减法时,我很难确定它何时溢出

比如说,

   1 1 1 1 0 0 0 0 
+  0 0 1 1 1 0 0 0 
  __________________
   0 0 1 0 1 0 0 0 
   0 0 0 0 0 0 0 1               
-  0 0 0 0 0 0 1 1   

(应用2的补码后)


因此,结果应该是“无溢出”,因为最终没有执行1。然而,答案是“溢出”。你能告诉我为什么吗?

我可能会称之为下溢而不是上溢


这样想吧。您正在尝试计算x− Y使用二的补码,您将把它实现为x+(2N)− y) =2N+(x− y) 。因此,结果只能正确表示(x− y) 如果有溢出进位2N从左侧脱落。否则,您得到的结果是负减法结果的两个s补码表示。

我认为应该在-