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.