# Excess-3

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Excess-3
> Markdown URL: https://mediated.wiki/source/Excess-3.md
> Source: https://en.wikipedia.org/wiki/Excess-3
> Source revision: 1353668417
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Variation to BCD-code where three (11) is added to a binary representation

"XS-3" redirects here. For the experimental aircraft, see [Douglas XS-3 Stiletto](/source/Douglas_XS-3_Stiletto).

"Shifted binary" redirects here. For the general concept, see [Offset binary](/source/Offset_binary). For binary shifts, see [Bit shifting](/source/Bit_shifting).

Stibitz code Digits 4[1] Tracks 4[1] Digit values 8 4 −2 −1 Weight(s) 1..3[1] Continuity No[1] Cyclic No[1] Minimum distance 1[1] Maximum distance 4 Redundancy 0.7 Lexicography 1[1] Complement 9[1] v t e

**Excess-3**, **3-excess**[1][2][3] or **10-excess-3** [binary](/source/Binary_number) code (often abbreviated as **XS-3**,[4] **3XS**[1] or **X3**[5][6]), **shifted binary**[7] or **Stibitz code**[1][2][8][9] (after [George Stibitz](/source/George_Stibitz),[10] who built a relay-based adding machine in 1937[11][12]) is a self-complementary [binary-coded decimal](/source/Binary-coded_decimal) (BCD) code and [numeral system](/source/Numeral_system). It is a [biased representation](/source/Offset_binary). 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](/source/Gray_code)) are non-weighted codes. In excess-3 code, numbers are represented as decimal digits, and each digit is represented by four [bits](/source/Bit) as the digit value plus 3 (the "excess" amount):

- The smallest binary number represents the smallest value (0 − excess).

- The greatest binary number represents the largest value (2*N*+1 − excess − 1).

Excess-3, and Stibitz code Decimal Excess-3 Stibitz BCD 8-4-2-1 Binary 3-of-6 CCITT extension[13][1] 4-of-8 Hamming extension[1] 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](/source/Algorithm) than normal non-biased BCD or binary [positional system](/source/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](/source/Integer_overflow) (carry) has occurred. (In 4-bit binary, subtracting binary 1101 is equivalent to adding 0011 and vice versa.)[14]

## Advantage

The primary advantage of excess-3 coding over non-biased coding is that a decimal number can be [nines' complemented](/source/Nines'_complement)[1] (for subtraction) as easily as a binary number can be [ones' complemented](/source/Ones'_complement): just by inverting all bits.[1] 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.[1][15][11]

## Example

[BCD 8-4-2-1](/source/BCD_8-4-2-1) to excess-3 converter example in [VHDL](/source/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 extension Digits 6[1] Tracks 6[1] Weight(s) 3[1] Continuity No[1] Cyclic No[1] Minimum distance 2[1] Maximum distance 6 Lexicography 1[1] Complement (9)[1] v t e

4-of-8 extension Digits 8[1] Tracks 8[1] Weight(s) 4[1] Continuity No[1] Cyclic No[1] Minimum distance 4[1] Maximum distance 8 Lexicography 1[1] Complement 9[1] v t e

- 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](/source/CCITT) GT 43 No. 1, where 3 out of 6 bits are set.[13][1]

- 4-of-8 code extension: As an alternative to the [IBM](/source/IBM) [transceiver code](https://en.wikipedia.org/w/index.php?title=Transceiver_code&action=edit&redlink=1)[16] (which is a 4-of-8 code with a [Hamming distance](/source/Hamming_distance) of 2),[1] 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.[1]

## See also

- [Offset binary](/source/Offset_binary), excess-*N*, biased representation

- [Excess-128](/source/Excess-128)

- [Excess-Gray code](/source/Excess-Gray_code)

- [Shifted Gray code](/source/Shifted_Gray_code)

- [Gray code](/source/Gray_code)

- [m-of-n code](/source/M-of-n_code)

- [Aiken code](/source/Aiken_code)

## References

1. ^ [***a***](#cite_ref-Steinbuch_1962_1-0) [***b***](#cite_ref-Steinbuch_1962_1-1) [***c***](#cite_ref-Steinbuch_1962_1-2) [***d***](#cite_ref-Steinbuch_1962_1-3) [***e***](#cite_ref-Steinbuch_1962_1-4) [***f***](#cite_ref-Steinbuch_1962_1-5) [***g***](#cite_ref-Steinbuch_1962_1-6) [***h***](#cite_ref-Steinbuch_1962_1-7) [***i***](#cite_ref-Steinbuch_1962_1-8) [***j***](#cite_ref-Steinbuch_1962_1-9) [***k***](#cite_ref-Steinbuch_1962_1-10) [***l***](#cite_ref-Steinbuch_1962_1-11) [***m***](#cite_ref-Steinbuch_1962_1-12) [***n***](#cite_ref-Steinbuch_1962_1-13) [***o***](#cite_ref-Steinbuch_1962_1-14) [***p***](#cite_ref-Steinbuch_1962_1-15) [***q***](#cite_ref-Steinbuch_1962_1-16) [***r***](#cite_ref-Steinbuch_1962_1-17) [***s***](#cite_ref-Steinbuch_1962_1-18) [***t***](#cite_ref-Steinbuch_1962_1-19) [***u***](#cite_ref-Steinbuch_1962_1-20) [***v***](#cite_ref-Steinbuch_1962_1-21) [***w***](#cite_ref-Steinbuch_1962_1-22) [***x***](#cite_ref-Steinbuch_1962_1-23) [***y***](#cite_ref-Steinbuch_1962_1-24) [***z***](#cite_ref-Steinbuch_1962_1-25) [***aa***](#cite_ref-Steinbuch_1962_1-26) [***ab***](#cite_ref-Steinbuch_1962_1-27) [***ac***](#cite_ref-Steinbuch_1962_1-28) [***ad***](#cite_ref-Steinbuch_1962_1-29) [***ae***](#cite_ref-Steinbuch_1962_1-30) [***af***](#cite_ref-Steinbuch_1962_1-31) [***ag***](#cite_ref-Steinbuch_1962_1-32) [***ah***](#cite_ref-Steinbuch_1962_1-33) [***ai***](#cite_ref-Steinbuch_1962_1-34) [Steinbuch, Karl W.](/source/Karl_W._Steinbuch), ed. (1962). Written at Karlsruhe, Germany. *Taschenbuch der Nachrichtenverarbeitung* (in German) (1 ed.). Berlin / Göttingen / New York: [Springer-Verlag OHG](/source/Springer-Verlag_OHG). pp. 71–73, 1081–1082. [LCCN](/source/LCCN_(identifier)) [62-14511](https://lccn.loc.gov/62-14511).

1. ^ [***a***](#cite_ref-Steinbuch-Weber_1974_2-0) [***b***](#cite_ref-Steinbuch-Weber_1974_2-1) [Steinbuch, Karl W.](/source/Karl_W._Steinbuch); Weber, Wolfgang; Heinemann, Traute, eds. (1974) [1967]. *Taschenbuch der Informatik – Band II – Struktur und Programmierung von EDV-Systemen* (in German). Vol. 2 (3 ed.). Berlin, Germany: [Springer Verlag](/source/Springer_Verlag). pp. 98–100. [ISBN](/source/ISBN_(identifier)) [3-540-06241-6](https://en.wikipedia.org/wiki/Special:BookSources/3-540-06241-6). [LCCN](/source/LCCN_(identifier)) [73-80607](https://lccn.loc.gov/73-80607). {{[cite book](https://en.wikipedia.org/wiki/Template:Cite_book)}}: |work= ignored ([help](https://en.wikipedia.org/wiki/Help:CS1_errors#periodical_ignored))

1. **[^](#cite_ref-Richards_1955_3-0)** Richards, Richard Kohler (1955). *Arithmetic Operations in Digital Computers*. New York, USA: [van Nostrand](/source/Van_Nostrand_(publisher)). p. 182.

1. **[^](#cite_ref-Kautz_1954_4-0)** [Kautz, William H.](/source/William_H._Kautz) (June 1954). ["Optimized Data Encoding for Digital Computers"](https://www.worldradiohistory.com/Archive-IRE/50s/IRE-1954-Part-4-Electronic-Computers-&-Information%20pdf). *Convention Record of the I.R.E. 1954 National Convention, Part 4: Electronic Computers and Information Technology*. **2**. Stanford Research Institute, Stanford, California, USA: [The Institute of Radio Engineers, Inc.](/source/The_Institute_of_Radio_Engineers%2C_Inc.): 47–57. Session 19: Information Theory III - Speed and Computation. Retrieved 2020-05-22. (11 pages)

1. **[^](#cite_ref-Schmid_1974_5-0)** [Schmid, Hermann](/source/Hermann_Schmid_(computer_scientist)) (1974). [*Decimal Computation*](https://archive.org/details/decimalcomputati0000schm) (1 ed.). Binghamton, New York, USA: [John Wiley & Sons, Inc.](/source/John_Wiley_%26_Sons%2C_Inc.) p. [11](https://archive.org/details/decimalcomputati0000schm/page/11). [ISBN](/source/ISBN_(identifier)) [0-471-76180-X](https://en.wikipedia.org/wiki/Special:BookSources/0-471-76180-X). Retrieved 2016-01-03.

1. **[^](#cite_ref-Schmid_1983_6-0)** [Schmid, Hermann](/source/Hermann_Schmid_(computer_scientist)) (1983) [1974]. [*Decimal Computation*](https://books.google.com/books?id=uEYZAQAAIAAJ) (1 (reprint) ed.). Malabar, Florida, USA: Robert E. Krieger Publishing Company. p. 11. [ISBN](/source/ISBN_(identifier)) [0-89874-318-4](https://en.wikipedia.org/wiki/Special:BookSources/0-89874-318-4). Retrieved 2016-01-03. (NB. At least some batches of this reprint edition were [misprints](/source/Misprint) with defective pages 115–146.)

1. **[^](#cite_ref-Stibitz_1957_7-0)** [Stibitz, George Robert](/source/George_Robert_Stibitz); Larrivee, Jules A. (1957). Written at Underhill, Vermont, USA. *Mathematics and Computers* (1 ed.). New York, USA / Toronto, Canada / London, UK: [McGraw-Hill Book Company, Inc.](/source/McGraw-Hill_Book_Company%2C_Inc.) p. 105. [LCCN](/source/LCCN_(identifier)) [56-10331](https://lccn.loc.gov/56-10331). (10+228 pages)

1. **[^](#cite_ref-Dokter_1973_8-0)** Dokter, Folkert; Steinhauer, Jürgen (1973-06-18). [*Digital Electronics*](https://books.google.com/books?id=hlRdDwAAQBAJ). Philips Technical Library (PTL) / Macmillan Education (Reprint of 1st English ed.). Eindhoven, Netherlands: [The Macmillan Press Ltd.](/source/The_Macmillan_Press_Ltd.) / [N. V. Philips' Gloeilampenfabrieken](/source/N._V._Philips'_Gloeilampenfabrieken). pp. 42, 44. [doi](/source/Doi_(identifier)):[10.1007/978-1-349-01417-0](https://doi.org/10.1007%2F978-1-349-01417-0). [ISBN](/source/ISBN_(identifier)) [978-1-349-01419-4](https://en.wikipedia.org/wiki/Special:BookSources/978-1-349-01419-4). [SBN](/source/SBN_(identifier)) [333-13360-9](https://en.wikipedia.org/wiki/Special:BookSources/0-333-13360-9). Retrieved 2018-07-01.[*[permanent dead link](https://en.wikipedia.org/wiki/Wikipedia:Link_rot)*] (270 pages) (NB. This is based on a translation of volume I of the two-volume German edition.)

1. **[^](#cite_ref-Dokter_1975_9-0)** Dokter, Folkert; Steinhauer, Jürgen (1975) [1969]. *Digitale Elektronik in der Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik*. Philips Fachbücher (in German). Vol. I (improved and extended 5th ed.). Hamburg, Germany: [Deutsche Philips GmbH](/source/Deutsche_Philips_GmbH). pp. 48, 51, 53, 58, 61, 73. [ISBN](/source/ISBN_(identifier)) [3-87145-272-6](https://en.wikipedia.org/wiki/Special:BookSources/3-87145-272-6). (xii+327+3 pages) (NB. The German edition of volume I was published in 1969, 1971, two editions in 1972, and 1975. Volume II was published in 1970, 1972, 1973, and 1975.)

1. **[^](#cite_ref-Stibitz_1941_10-0)** [Stibitz, George Robert](/source/George_Robert_Stibitz) (1954-02-09) [1941-04-19]. ["Complex Computer"](https://patents.google.com/patent/US2668661?oq=US2668661). Patent US2668661A. Retrieved 2020-05-24. [\[1\]](https://web.archive.org/web/20200523235356/https://patentimages.storage.googleapis.com/60/dc/f7/69cd9496a44f6d/US2668661.pdf) (102 pages)

1. ^ [***a***](#cite_ref-Mietke_2017_11-0) [***b***](#cite_ref-Mietke_2017_11-1) Mietke, Detlef (2017) [2015]. ["Binäre Codices"](http://elektroniktutor.de/digitaltechnik/codices.html). *Informations- und Kommunikationstechnik* (in German). Berlin, Germany. Exzeß-3-Code mit Additions- und Subtraktionsverfahren. [Archived](https://web.archive.org/web/20170425181921/http://elektroniktutor.de/digitaltechnik/codices.html) from the original on 2017-04-25. Retrieved 2017-04-25.

1. **[^](#cite_ref-Ritchie_1986_12-0)** Ritchie, David (1986). [*The Computer Pioneers*](https://archive.org/details/computerpioneers00ritc/page/35). New York, USA: [Simon and Schuster](/source/Simon_and_Schuster). p. [35](https://archive.org/details/computerpioneers00ritc/page/35). [ISBN](/source/ISBN_(identifier)) [067152397X](https://en.wikipedia.org/wiki/Special:BookSources/067152397X).

1. ^ [***a***](#cite_ref-CCITT_1959_13-0) [***b***](#cite_ref-CCITT_1959_13-1) [Comité Consultatif International Téléphonique et Télégraphique](/source/Comit%C3%A9_Consultatif_International_T%C3%A9l%C3%A9phonique_et_T%C3%A9l%C3%A9graphique) (CCITT), Groupe de Travail 43 (1959-06-03). *Contribution No. 1*. CCITT, GT 43 No. 1.{{[cite book](https://en.wikipedia.org/wiki/Template:Cite_book)}}: CS1 maint: numeric names: authors list ([link](https://en.wikipedia.org/wiki/Category:CS1_maint:_numeric_names:_authors_list))

1. **[^](#cite_ref-14)** Hayes, John P. (1978). *Computer Architecture and Organization*. McGraw-Hill International Book Company. p. 156. [ISBN](/source/ISBN_(identifier)) [0-07-027363-4](https://en.wikipedia.org/wiki/Special:BookSources/0-07-027363-4).

1. **[^](#cite_ref-Bashe_1956_15-0)** Bashe, Charles J.; Jackson, Peter Ward; Mussell, Howard A.; Winger, Wayne David (January 1956). "The Design of the IBM Type 702 System". *[Transactions of the American Institute of Electrical Engineers, Part I: Communication and Electronics](/source/Transactions_of_the_American_Institute_of_Electrical_Engineers%2C_Part_I%3A_Communication_and_Electronics)*. **74** (6): 695–704. [doi](/source/Doi_(identifier)):[10.1109/TCE.1956.6372444](https://doi.org/10.1109%2FTCE.1956.6372444). [S2CID](/source/S2CID_(identifier)) [51666209](https://api.semanticscholar.org/CorpusID:51666209). Paper No. 55-719.

1. **[^](#cite_ref-IBM_Transceiver_16-0)** [IBM](/source/IBM) (July 1957). *65 Data Transceiver / 66 Printing Data Receiver*.

---
Adapted from the Wikipedia article [Excess-3](https://en.wikipedia.org/wiki/Excess-3) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Excess-3?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
