Bi-quinary coded decimal is a numeral encoding scheme used in many abacuses and in some early computers, including the Colossus.[1] The term bi-quinary indicates that the code comprises both a two-state (bi) and a five-state (quinary) component. The encoding resembles that used by many abacuses, with four beads indicating the five values either from 0 through 4 or from 5 through 9 and another bead indicating which of those ranges (which can alternatively be thought of as +5).
Several human languages, most notably Fula and Wolof also use biquinary systems. For example, the Fula word for 6, jowi e go'o, literally means five [plus] one. Roman numerals use a symbolic, rather than positional, bi-quinary base, even though Latin is completely decimal.
The Korean finger counting system Chisanbop uses a bi-quinary system, where each finger represents a one and a thumb represents a five, allowing one to count from 0 to 99 with two hands.
One advantage of one bi-quinary encoding scheme on digital computers is that it must have two bits set (one in the binary field and one in the quinary field), providing a built-in checksum to verify if the number is valid or not. (Stuck bits happened frequently with computers using mechanical relays.)
Several different representations of bi-quinary coded decimal have been used by different machines. The two-state component is encoded as one or two bits, and the five-state component is encoded using three to five bits. Some examples are:
The IBM 650 uses seven bits: two bi bits (0 and 5) and five quinary bits (0, 1, 2, 3, 4), with error checking.
Exactly one bi bit and one quinary bit is set in a valid digit. The bi-quinary encoding of the internal workings of the machine are evident in the arrangement of its lights – the bi bits form the top of a T for each digit, and the quinary bits form the vertical stem.
Value | 05-01234 bits | |
0 | 10-10000 | |
1 | 10-01000 | |
2 | 10-00100 | |
3 | 10-00010 | |
4 | 10-00001 | |
5 | 01-10000 | |
6 | 01-01000 | |
7 | 01-00100 | |
8 | 01-00010 | |
9 | 01-00001 |
The Remington Rand 409 has five bits: one quinary bit (tube) for each of 1, 3, 5, and 7 - only one of these would be on at the time. The fifth bi bit represented 9 if none of the others were on; otherwise it added 1 to the value represented by the other quinary bit. The machine was sold in the two models UNIVAC 60 and UNIVAC 120.
Value | 1357-9 bits | |
0 | 0000-0 | |
1 | 1000-0 | |
2 | 1000-1 | |
3 | 0100-0 | |
4 | 0100-1 | |
5 | 0010-0 | |
6 | 0010-1 | |
7 | 0001-0 | |
8 | 0001-1 | |
9 | 0000-1 |
The UNIVAC Solid State uses four bits: one bi bit (5), three binary coded quinary bits (4 2 1) and one parity check bit
Value | p-5-421 bits | |
0 | 1-0-000 | |
1 | 0-0-001 | |
2 | 0-0-010 | |
3 | 1-0-011 | |
4 | 0-0-100 | |
5 | 0-1-000 | |
6 | 1-1-001 | |
7 | 1-1-010 | |
8 | 0-1-011 | |
9 | 1-1-100 |
The UNIVAC LARC has four bits: one bi bit (5), three Johnson counter-coded quinary bits and one parity check bit.
Value | p-5-qqq bits | |
0 | 1-0-000 | |
1 | 0-0-001 | |
2 | 1-0-011 | |
3 | 0-0-111 | |
4 | 1-0-110 | |
5 | 0-1-000 | |
6 | 1-1-001 | |
7 | 0-1-011 | |
8 | 1-1-111 | |
9 | 0-1-110 |