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