Velocity Reviews > Re: Adding a positive number and a negative number

Re: Adding a positive number and a negative number

MRAB
Guest
Posts: n/a

 01-30-2009
> In twoâ€™s complement representation, can adding one positive and one negative give you overflow?
>
No.

Steve Holden
Guest
Posts: n/a

 01-31-2009
Scott David Daniels wrote:
> Grant Edwards wrote:
>> On 2009-01-30, MRAB <(E-Mail Removed)> wrote:
>>>> In two's complement representation, can adding one positive
>>>> and one negative give you overflow?
>>> No.
>> AFAIK, in Python adding integers never gives you overlow
>> regardless of sign.

>
> Right, but he wants his homework answer.

And Python doesn't use pure two's complement notation when it promotes
regular integers to longs.

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/

John Machin
Guest
Posts: n/a

 01-31-2009
On Jan 31, 4:10*am, Scott David Daniels <(E-Mail Removed)> wrote:
> Grant Edwards wrote:
> > On 2009-01-30, MRAB <(E-Mail Removed)> wrote:
> >>> In two's complement representation, can adding one positive
> >>> and one negative give you overflow?
> >> No.
> > AFAIK, in Python adding integers never gives you overlow
> > regardless of sign.

>
> Right, but he wants his homework answer.

For extra brownie points, here's a simple proof of the more general
proposition that adding a non-negative integer p and a non-positive
integer n can't overflow whatever the representation.

Let a be the most negative integer and b the most positive. So we're
given a <= n <= 0 <= p <= b and need to show that a <= (p + n) <= b.

max(p) is b, max(n) is 0, so max(p + n) is b.
Similarly min(p + n) is a.
Q.E.D.

IEEE 754 floating point? I don't know. Go read the standard