Path: utzoo!attcan!uunet!convex!killer!ames!umd5!uvaarpa!virginia!uvacs!wulf
From: wulf@uvacs.CS.VIRGINIA.EDU (Bill Wulf)
Newsgroups: comp.arch
Subject: more on unsigned
Message-ID: <2433@uvacs.CS.VIRGINIA.EDU>
Date: 30 May 88 16:18:35 GMT
Organization: U.Va. CS Department, Charlottesville, VA
Lines: 53

I must admit to being a bit overwhelmed by the number and
diversity of articles that have appeared in response to 
my querry about machines with negative addresses. First,
thanks to all. Second, apologies for not responding to
them; I just started a new job at NSF and have been pretty
busy -- just reading them on weekends has been the best I
could do. Third, I want to correct one rampent mis-impression.
Unsigned is NOT required for multi-precision arithmetic.

This is hardly the forum for a lecture on arithmetic, but,
just to set the framework -- as we all know, our familiar
positional notation is simply a shorthand for a polynomial.
Eg,

	123 == 1*10**2 + 2*10**1 + 3+10**0

the numeral in "123" are simply the coefficients of the polynomial,
and their position is used as an abbreviation for the "10**n".
Now, a multi-precision number can be thought of in the same way.
That is, each word can be viewed as a coefficient in a polynomial
of the form

	w2 w1 w0 == w2*(2**32)**2 + w1*(2**32)**1 + w0*(2**32)**0

NOW -- no one ever said that these coefficients must be positive!!!
Perfectly reasonable, consistent number systems can be defined
where some of the numerals denote negative values. Consider a 
ternary number system where the numerals are

	1 == 1
	0 == 0
	M == -1

SO, for example, 1M0 == 1*9 + (-1)*3 + 0*1 == 6, and

	decimal   is 	strange
	-------		-------
	0		0
	1		1
	2		1M
	3		10
	4		11
	5		1MM
	6		1M0
	7		1M1
	8		10M
	9		100
etc.

So, you see, while it may seem a bit strange, unsigned arithmetic
is not necessary for multi-precision arithmetic.

Bill