Sign magnitude, one's complement, two's complement
Paul Koning
paulkoning at comcast.net
Sat Aug 22 17:39:49 CDT 2015
> On Aug 22, 2015, at 5:49 PM, Al Kossow <aek at bitsavers.org> wrote:
>
> On 8/22/15 2:23 PM, Sean Conner wrote:
>>
>> For my own morbid curiosity, and because it came up on another mailing
>> list I'm on [1], what machines commercially avaialble were sign magnitude
>> and one's complement?
>
> A table of what computers had what numeric representation is one of those things
> that should have been done, but never has. Now that bitsavers has a reasonable collection
> of technical/programming manuals, it might even be possible.
>
> http://quadibloc.com/comp/cpint.htm
>
> has some information, but it isn't really in any sort of tabular form.
Some comments on that data.
There are a bunch of one's complement machines. CDC 6000 series has already been mentioned. Electrological EL-X1 and EL-X8 are another example.
Both the CDC and the EL-X8 have another interesting property: the floating point format is one's complement, and the mantissa is an integer rather than a fraction. F.E.K Kruseman Aretz in his paper on the EL-X8 floating point implementation calls this "Grau representation" (A.A. Grau. On a floating–point representation for use with algorithmic languages. Comm. ACM 5 (1962) 160.). One's complement in the sense that negating a float was done exactly like negating an int: by complementing it. And in the EL-X8 the exponent field was a one's complement integer also (unlike CDC where is's an excess-02000 value).
One interesting property of one's complement machines is whether they "prefer +0" or "prefer -0". If you use an adder, then x+(-x) produces -0 -- the only way to get +0 is as the result of 0+0. Cray apparently didn't like that, so the CDC 6000 series use a subtractor, so add is done as a-(-b). If you do that, then you get "prefer +0" -- x + (-x) is +0 if x is non-zero, and the only way to get a -0 result is to start with a -0 input. But EL-X8 is "prefer -0". I don't know about other one's complement machines.
> AFAIK, the PDP-1 was the only DEC 1's compliment machine that shipped.
>
> I had also heard that 1's compliment never caught on in short word length
> machines because of the difficulty dealing with multi-word arithmetic.
Interesting point. Not true for the CDC 6000 series PPUs because they had an 18 bit accumulator, so a 24 bit add (which was fairly common) would look like:
ldm foo
adm bar
stm result
shn -12 shift carry into lower bits
adm foo+1
adm bar+1
stm result+1
As for sign/magnitude, there's the IBM 1620. Not binary, but sign/magnitude decimal.
paul
More information about the cctech
mailing list