Signed-digit representation

From Wikipedia, the free encyclopedia

Numeral systems by culture
Hindu-Arabic numerals
Indian
Eastern Arabic
Khmer
Indian family
Brahmi
Thai
East Asian numerals
Chinese
Suzhou
Counting rods
Japanese
Korean 
Alphabetic numerals
Abjad
Armenian
Cyrillic
Ge'ez
Hebrew
Greek (Ionian)
Āryabhaṭa
 
Other systems
Attic
Babylonian
Egyptian
Etruscan
Mayan
Roman
Urnfield
List of numeral system topics
Positional systems by base
Decimal (10)
2, 4, 8, 16, 32, 64
1, 3, 9, 12, 20, 24, 30, 36, 60, more…
v  d  e

Signed-digit representation of numbers indicates that digits can be prefixed with a − (minus) sign to indicate that they are negative.

Signed-digit representation can be used in low-level software and hardware to accomplish fast high speed addition of integers because it can eliminate carries. In the binary numeral system one special case of signed-digit representation is the non-adjacent form which can offer speed benefits with minimal space overhead.

[edit] Balanced form

In balanced form, the digits are drawn from a range k to (b − 1) − k, where typically k = \left\lfloor\frac{b}{2}\right\rfloor. A notable example is balanced ternary, where the base is b = 3, and the numerals have the values −1, 0 and +1 (rather than 0, 1 and 2 as in the standard ternary numeral system); another is balanced decimal, where the digits range from −5 to +4.

[edit] Non-unique representations

Note that signed-digit representation is not necessarily unique. For instance:

(0 1 1 1)2 = 4 + 2 + 1 = 7
(1 0 −1 1)2 = 8 − 2 + 1 = 7
(1 −1 1 1)2 = 8 − 4 + 2 + 1 = 7
(1 0 0 −1)2 = 8 − 1 = 7

The non-adjacent form does guarantee a unique representation for every integer value, as do balanced forms.

When representations are extended to fractional numbers, uniqueness is lost for non-adjacent and balanced forms; for example,

(0 . (1 0)…)NAF = 23 = (1 . (0 −1)…)NAF

and

(0 . 4 4 4 …)(10bal) = 49 = (1 . -5 -5 -5 …)(10bal)

Such examples can be shown to exist by considering the largest and smallest possible representations with integral parts 0 and 1 respectively, and then noting that they are equal. (Indeed, this works with any integral-base system.)

[edit] See also

Languages