Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site unisoft.UUCP
Path: utzoo!watmath!clyde!burl!we13!ihnp4!zehntel!dual!unisoft!pkr
From: pkr@unisoft.UUCP (Phil Ronzone)
Newsgroups: net.arch
Subject: Re: Page Size - Again - (nf)
Message-ID: <197@unisoft.UUCP>
Date: Mon, 6-Feb-84 01:09:54 EST
Article-I.D.: unisoft.197
Posted: Mon Feb  6 01:09:54 1984
Date-Received: Tue, 7-Feb-84 13:36:03 EST
References: <5102@uiucdcs.UUCP>
Organization: UniSoft Corp., Berkeley
Lines: 26

..... (why two's complement ....) ... (prevails today) .....

Well, for a binary machine, there have been three major trends:
    - sign/magnitude
      Advantage:     Easy to read as binary.
      Disadvantages: Addition of numbers of opposite sign requires
                     either a one's or two's complement step, or
                     comparision of magnitude, sometimes both.

    - one's complement
      Advantages:    Easy sign reversal. Complementer takes (generally)
                     1/2 the logic.
      Disadvantage:  Slow in compare. Has two zeros (all 0's, all 1's).

    - two's complement
      Advantages:    Carry, arithmetic shifts easier/faster to do in logic.
      Disadvantage:  Complement is slower, takes twice logic as one's compl.

Summary: Two's complement won because in hardware gate count and speed, it
         was faster in compares and arithmetic shifts, easier to do
         synchronous (.vs. ripple) carries, and slighlty faster for +- ops.
         Since * / ops. do a lot of shifts, carries, and compares, they
         tended to be faster also (than one's complements). The only penalty
         paid was the complement operation, and that was only in gate counts
         and wasn't a common operation anyway.