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.