From Surf Wiki (app.surf) — the open knowledge base
Excess-3
Variation to BCD-code where three (11) is added to a binary representation
Variation to BCD-code where three (11) is added to a binary representation
| Field | Value |
|---|---|
| name | 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):
- The smallest binary number represents the smallest value ().
- The greatest binary number represents the largest value ().
| Decimal | Excess-3 | Stibitz | BCD 8-4-2-1 | Binary | 3-of-6 CCITT | |
|---|---|---|---|---|---|---|
| extension | 4-of-8 Hamming | |||||
| extension | ||||||
| **0** | **0011** | **0011** | 0000 | 0000 | …**10** | …**0011** |
| **1** | **0100** | **0100** | 0001 | 0001 | …**11** | …**1011** |
| **2** | **0101** | **0101** | 0010 | 0010 | …**10** | …**0101** |
| **3** | **0110** | **0110** | 0011 | 0011 | …**10** | …**0110** |
| **4** | **0111** | **0111** | 0100 | 0100 | …**00** | …**1000** |
| **5** | **1000** | **1000** | 0101 | 0101 | …**11** | …**0111** |
| **6** | **1001** | **1001** | 0110 | 0110 | …**10** | …**1001** |
| **7** | **1010** | **1010** | 0111 | 0111 | …**10** | …**1010** |
| **8** | **1011** | **1011** | 1000 | 1000 | …**00** | …**0100** |
| **9** | **1100** | **1100** | 1001 | 1001 | …**10** | …**1100** |
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.)
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 is
begin
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 code extension: The excess-3 code is sometimes also used for data transfer, then often expanded to a 6-bit code per CCITT GT 43 No. 1, where 3 out of 6 bits are set.
- 4-of-8 code extension: As an alternative to the IBM transceiver code (which is a 4-of-8 code with a Hamming distance of 2), it is also possible to define a 4-of-8 excess-3 code extension achieving a Hamming distance of 4, if only denary digits are to be transferred.
References
References
- Hayes, John P.. (1978). "Computer Architecture and Organization". McGraw-Hill International Book Company.
- (1962). "Taschenbuch der Nachrichtenverarbeitung". [[Springer-Verlag OHG]].
- (1974). "Taschenbuch der Informatik – Band II – Struktur und Programmierung von EDV-Systemen". [[Springer Verlag]].
- (1974). "Decimal Computation". [[John Wiley & Sons, Inc.]].
- (1983). "Decimal Computation". Robert E. Krieger Publishing Company.
- (1955). "Arithmetic Operations in Digital Computers". [[van Nostrand (publisher).
- [[Comité Consultatif International Téléphonique et Télégraphique]] (CCITT), Groupe de Travail 43. (1959-06-03). "Contribution No. 1".
- (January 1956). "The Design of the IBM Type 702 System". [[Transactions of the American Institute of Electrical Engineers, Part I: Communication and Electronics]].
- IBM. (July 1957). "65 Data Transceiver / 66 Printing Data Receiver".
- (2017). "Binäre Codices". Informations- und Kommunikationstechnik.
- (1986). "The Computer Pioneers". [[Simon and Schuster]].
- (1973-06-18). "Digital Electronics". [[The Macmillan Press Ltd.]] / [[N. V. Philips' Gloeilampenfabrieken]].
- (1975). "Digitale Elektronik in der Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik". [[Deutsche Philips GmbH]].
- (June 1954). "Optimized Data Encoding for Digital Computers". [[The Institute of Radio Engineers, Inc.]].
- (1954-02-09). "Complex Computer".
- (1957). "Mathematics and Computers". [[McGraw-Hill Book Company, Inc.]].
This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.
Ask Mako anything about Excess-3 — get instant answers, deeper analysis, and related topics.
Research with MakoFree with your Surf account
Create a free account to save articles, ask Mako questions, and organize your research.
Sign up freeThis content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.
Report