Excess-3


Excess-3, 3-excess or 10-excess-3 binary code, shifted binary or Stibitz code is a self-complementary binary-coded decimal code and numeral system. It is a biased representation. Excess-3 code was used on some older computers as well as in cash registers and hand-held portable electronic calculators of the 1970s, among other uses.

Representation

Biased codes are a way to represent values with a balanced number of positive and negative numbers using a pre-specified number N as a biasing value. Biased codes are non-weighted codes. In excess-3 code, numbers are represented as decimal digits, and each digit is represented by four bits as the digit value plus 3 :
DecimalExcess-3StibitzBCD 8-4-2-1Binary3-of-6 CCITT
extension
4-of-8 Hamming
extension
−30000pseudo-tetradeN/AN/AN/AN/A
−20001pseudo-tetradeN/AN/AN/AN/A
−10010pseudo-tetradeN/AN/AN/AN/A
00011001100000000100011
10100010000010001111011
20101010100100010100101
30110011000110011100110
40111011101000100001000
51000100001010101110111
61001100101100110101001
71010101001110111101010
81011101110001000000100
91100110010011001101100
101101pseudo-tetradepseudo-tetrade1010N/AN/A
111110pseudo-tetradepseudo-tetrade1011N/AN/A
121111pseudo-tetradepseudo-tetrade1100N/AN/A
13N/AN/Apseudo-tetrade1101N/AN/A
14N/AN/Apseudo-tetrade1110N/AN/A
15N/AN/Apseudo-tetrade1111N/AN/A

To encode a number such as 127, one simply encodes each of the decimal digits as above, giving.
Excess-3 arithmetic uses different algorithms than normal non-biased BCD or binary positional system numbers. After adding two excess-3 digits, the raw sum is excess-6. For instance, after adding 1 and 2, the sum looks like 6 instead of 3. In order to correct this problem, after adding two digits, it is necessary to remove the extra bias by subtracting binary 0011 if the resulting digit is less than decimal 10, or subtracting binary 1101 if an overflow has occurred.

Motivation

The primary advantage of excess-3 coding over non-biased coding is that a decimal number can be nines' complemented as easily as a binary number can be ones' complemented: just by inverting all bits. Also, when the sum of two excess-3 digits is greater than 9, the carry bit of a 4-bit adder will be set high. This works because, after adding two digits, an "excess" value of 6 results in the sum. Because a 4-bit integer can only hold values 0 to 15, an excess of 6 means that any sum over 9 will overflow.
Another advantage is that the codes 0000 and 1111 are not used for any digit. A fault in a memory or basic transmission line may result in these codes. It is also more difficult to write the zero pattern to magnetic media.

Example

to excess-3 converter example in VHDL:

entity bcd8421xs3 is
port ;
end entity bcd8421xs3;
architecture dataflow of bcd8421xs3 is
begin
an <= not a;
bn <= not b;
cn <= not c;
dn <= not d;
w <= or
or ;
x <= or
or or ;
y <= or
or ;
z <= or ;
end architecture dataflow; -- of bcd8421xs3

Extensions