Excess-3

Excess-3 binary coded decimal (XS-3) is a numeral system used in some old computers. In XS-3, numbers are represented as decimal digits, and each digit is represented by four bits as the BCD value plus 3 (the "excess" amount):

Digit Bits      Digit Bits
   0   0011        5   1000
   1   0100        6   1001
   2   0101        7   1010
   3   0110        8   1011
   4   0111        9   1100
 

To encode a number such as 127, then, one simply encodes each of the decimal digits as above, giving (0100, 0101, 1010).

The primary advantage of XS-3 coding over BCD coding is that a decimal number can be nine's complemented (for subtraction) as easily as a binary number can be one's complemented, just invert all bits.

Adding Excess-3 works on a different algorithm than BCD coding or regular binary numbers. When you add two XS-3 numbers together, the result is not an XS-3 number. For instance, when you add 1 and 0 in XS-3 the answer seems to be 4 instead of 1. In order to correct this problem, when you are finished adding the number, you have to subtract 3 (binary 11) if the number is less than decimal 10 and add three if the number is more than decimal 10.

See also

See also: Excess-3, Algorithm, Binary coded decimal, Bit, Gray code, Nine's complement, Numeral system, One's complement