Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 (Tek) 9/26/83; site tektronix.UUCP Path: utzoo!watmath!clyde!burl!we13!ihnp4!alberta!ubc-vision!uw-beaver!tektronix!scottt From: scottt@tektronix.UUCP (Scott Trappe) Newsgroups: net.arch Subject: Re: Choice of ones vs. twos complement Message-ID: <1737@tektronix.UUCP> Date: Sat, 4-Feb-84 23:04:45 EST Article-I.D.: tektroni.1737 Posted: Sat Feb 4 23:04:45 1984 Date-Received: Thu, 9-Feb-84 06:05:46 EST Organization: Tektronix, Beaverton OR Lines: 16 The CDC 6600 used one's complement because the circuitry to implement it for a 60-bit adder was simpler than for two's complement. Subtraction came almost for free: latches on the input of the add unit provided both true and complement signals, so for a subtract you just used the complement signals for one operand. Also, to avoid generating zeros, the adder propagated borrows rather than carries. The only way a negative zero could be generated as a result was if both operands were -0. So as long as you started with +0, you would never get a -0. I never had any problems with one's complement on the 6600 except in doing logical tests, because the zero test instructions counted all ones (-0) as zero. This would sometimes complicate an otherwise easy test. I would have been happy if they had just defined +0 as being the only "valid" zero, and only tested for it in the ZR and NZ instructions.