Excess-3 Explained

Stibitz code
Digits:4
Tracks:4
Digit Values:8  4  
Weight:1..3
Continuity:No
Cyclic:No
Minimum Distance:1
Maximum Distance:4
Redundancy:0.7
Lexicography:1
Complement:9

Excess-3, 3-excess or 10-excess-3 binary code (often abbreviated as XS-3, 3XS or X3), shifted binary or Stibitz code (after George Stibitz, who built a relay-based adding machine in 1937) is a self-complementary binary-coded decimal (BCD) 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 (and Gray 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 (the "excess" amount):

Excess-3, and Stibitz code
DecimalExcess-3StibitzBCD 8-4-2-1Binary3-of-6 CCITT
extension
4-of-8 Hamming
extension
-30000pseudo-tetradeN/AN/AN/AN/A
-20001pseudo-tetrade
-10010pseudo-tetrade
00011001100000000100011
10100010000010001111011
20101010100100010100101
30110011000110011100110
40111011101000100001000
51000100001010101110111
61001100101100110101001
71010101001110111101010
81011101110001000000100
91100110010011001101100
101101pseudo-tetradepseudo-tetrade1010N/AN/A
111110pseudo-tetradepseudo-tetrade1011
121111pseudo-tetradepseudo-tetrade1100
13N/AN/Apseudo-tetrade1101
14pseudo-tetrade1110
15pseudo-tetrade1111

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

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 (0100 in excess-3) and 2 (0101 in excess-3), the sum looks like 6 (1001 in excess-3) instead of 3 (0110 in excess-3). To correct this problem, after adding two digits, it is necessary to remove the extra bias by subtracting binary 0011 (decimal 3 in unbiased binary) if the resulting digit is less than decimal 10, or subtracting binary 1101 (decimal 13 in unbiased binary) if an overflow (carry) has occurred. (In 4-bit binary, subtracting binary 1101 is equivalent to adding 0011 and vice versa.)[1]

Advantage

The primary advantage of excess-3 coding over non-biased coding is that a decimal number can be nines' complemented (for subtraction) 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 (produce a carry-out).

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

BCD 8-4-2-1 to excess-3 converter example in VHDL:entity bcd8421xs3 is port (a : in std_logic; b : in std_logic; c : in std_logic; d : in std_logic;

an : buffer std_logic; bn : buffer std_logic; cn : buffer std_logic; dn : buffer std_logic;

w : out std_logic; x : out std_logic; y : out std_logic; z : out std_logic);end entity bcd8421xs3;

architecture dataflow of bcd8421xs3 isbegin an <= not a; bn <= not b; cn <= not c; dn <= not d;

w <= (an and b and d) or (a and bn and cn) or (an and b and c and dn); x <= (an and bn and d) or (an and bn and c and dn) or (an and b and cn and dn) or (a and bn and cn and d); y <= (an and cn and dn) or (an and c and d) or (a and bn and cn and dn); z <= (an and dn) or (a and bn and cn and dn);

end architecture dataflow; -- of bcd8421xs3

Extensions

3-of-6 extension
Digits:6
Tracks:6
Digit Values:N/A -->
Weight:3
Continuity:No
Cyclic:No
Minimum Distance:2
Maximum Distance:6
Hamming Distance:-->
Redundancy:-->
Lexicography:1
Complement:(9)
4-of-8 extension
Digits:8
Tracks:8
Digit Values:N/A -->
Weight:4
Continuity:No
Cyclic:No
Minimum Distance:4
Maximum Distance:8
Hamming Distance:-->
Redundancy:-->
Lexicography:1
Complement:9

See also

Notes and References

  1. Book: Hayes, John P. . Computer Architecture and Organization . 0-07-027363-4 . 1978 . McGraw-Hill International Book Company . 156.