Overflow Rule for addition ========================= If 2 Two's Complement numbers are added, and they both have the same sign (both positive or both negative), then overflow occurs if and only if the result has the opposite sign. Overflow never occurs when adding operands with different signs. i.e. Adding two positive numbers must give a positive result   Adding two negative numbers must give a negative result Overflow occurs if (+A) + (+B) = ?C (?A) + (?B) = +C Example: Using 4-bit Two's Complement numbers (?8 ? x ? +7)  (?7)   1001 +(?6)   1010 ------------ (?13) 1 0011 = 3 : Overflow (largest ?ve number is ?8) A couple of definitions: Subtrahend: what is being subtracted Minuhend: what it is being subtracted from Example: 612 - 485 = 127 485 is the subtrahend, 612 is the minuhend, 127 is the result Two's Complement Subtraction Normally accomplished by negating the subtrahend and adding it to the minuhend. Any carry-out is discarded. Example: Using 8-bit Two's Complement Numbers (?128 ? x ? +127)  (+8) 0000 1000               0000 1000 ?(+5) 0000 0101 -> Negate -> +1111 1011 -----                       -----------  (+3)                       1 0000 0011 : discard carry-out Overflow Rule for Subtraction ============================ If 2 Two's Complement numbers are subtracted, and their signs are different, then overflow occurs if and only if the result has the same sign as the subtrahend. Overflow occurs if (+A) ? (?B) = ?C (?A) ? (+B) = +C Example: Using 4-bit Two's Complement numbers (?8 ? x ? +7) Subtract ?6 from +7      (+7) 0111               0111     ?(?6) 1010 -> Negate -> +0110     ----------              -----       13                     1101 = ?8 + 5 = ?3 : Overflow   |