Överskott-3
Stibitz-kod | |
---|---|
Siffror | 4 |
Spår | 4 |
Siffervärden | 8 4 −2 −1 |
Vikt(er) | 1..3 |
Kontinuitet | Nej |
Cyklisk | Nej |
Minsta avstånd | 1 |
Maximalt avstånd | 4 |
Redundans | 0,7 |
Lexikografi | 1 |
Komplement | 9 |
Excess-3 , 3-excess eller 10-excess-3 binär kod (ofta förkortad som XS-3 , 3XS eller X3 ), skiftad binär eller Stibitz-kod (efter George Stibitz , som byggde en reläbaserad adderingsmaskin 1937) är ett självkomplementärt binärt kodat decimalsystem (BCD) och siffror . Det är en partisk representation . Excess-3-kod användes på vissa äldre datorer såväl som i kassaapparater och handhållna bärbara elektroniska miniräknare på 1970-talet, bland annat.
Representation
Biased koder är ett sätt att representera värden med ett balanserat antal positiva och negativa siffror med ett fördefinierat nummer N som ett biasingvärde. Partiska koder (och grå koder ) är icke-viktade koder. I överskott-3-kod representeras siffror som decimalsiffror, och varje siffra representeras av fyra bitar som siffervärdet plus 3 (det "överskjutande" beloppet):
- Det minsta binära talet representerar det minsta värdet ( 0 − överskott) .
- Det största binära talet representerar det största värdet ( 2 N +1 − överskott − 1 ) .
Decimal | Överskott-3 | Stibitz | BCD 8-4-2-1 | Binär | 3-av-6 CCITT- förlängning |
4-av-8 Hamming- förlängning |
---|---|---|---|---|---|---|
−3 | 0000 | pseudo-tetrade | N/A | N/A | N/A | N/A |
−2 | 0001 | pseudo-tetrade | ||||
−1 | 0010 | pseudo-tetrade | ||||
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 |
10 | 1101 | pseudo-tetrade | pseudo-tetrade | 1010 | N/A | N/A |
11 | 1110 | pseudo-tetrade | pseudo-tetrade | 1011 | ||
12 | 1111 | pseudo-tetrade | pseudo-tetrade | 1100 | ||
13 | N/A | N/A | pseudo-tetrade | 1101 | ||
14 | pseudo-tetrade | 1110 | ||||
15 | pseudo-tetrade | 1111 |
För att koda ett tal som 127, kodar man helt enkelt var och en av decimalsiffrorna enligt ovan, vilket ger (0100, 0101, 1010).
Excess-3 aritmetik använder andra algoritmer än normala icke-partiska BCD eller binära positionssystemnummer . Efter att ha lagt till två överskjutande 3 siffror är råsumman överskjutande 6. Till exempel, efter att ha lagt till 1 (0100 i överskott-3) och 2 (0101 i överskott-3), ser summan ut som 6 (1001 i överskott-3) istället för 3 (0110 i överskott-3). För att rätta till detta problem, efter att ha lagt till två siffror, är det nödvändigt att ta bort den extra förspänningen genom att subtrahera binär 0011 (decimal 3 i opartisk binär) om den resulterande siffran är mindre än decimal 10, eller subtrahera binär 1101 (decimal 13 i opartisk binär) om ett spill (carry) har inträffat. (I 4-bitars binär är subtrahering av binär 1101 ekvivalent med att lägga till 0011 och vice versa.)
Motivering
Den primära fördelen med kodning med excess-3 jämfört med icke-förspänd kodning är att ett decimaltal kan kompletteras med nio (för subtraktion) lika lätt som ett binärt tal kan kompletteras med ettor : bara genom att invertera alla bitar. Dessutom, när summan av två överflödiga 3 siffror är större än 9, kommer bärbiten för en 4-bitars adderare att ställas in högt. Detta fungerar eftersom, efter att ha lagt till två siffror, resulterar ett "överskottsvärde" på 6 i summan. Eftersom ett 4-bitars heltal bara kan innehålla värdena 0 till 15, betyder ett överskott på 6 att varje summa över 9 kommer att svämma över (producerar en utförande).
En annan fördel är att koderna 0000 och 1111 inte används för någon siffra. Ett fel i ett minne eller en grundläggande transmissionsledning kan resultera i dessa koder. Det är också svårare att skriva nollmönstret till magnetiska medier.
Exempel
BCD 8-4-2-1 till excess-3-omvandlarexempel i VHDL :
entitet bcd8421xs3 är port ( a : i std_logic ; b : i std_logic ; c : i std_logic ; d : i std_logic ; an : buffert std_logic ; bn : buffert std_logic ; cn : buffert std_logic : buffert std_logic ; dn : buffert std_logic ; std_logic _ x : ut std_logic ; y : ut std_logic ; z : ut std_logic ); slutenhet bcd8421xs3 ; _ arkitekturdataflödet för bcd8421xs3 är start en < = inte en ; bn <= inte b ; cn <= inte c ; dn <= inte d ; w <= ( an och b och d ) eller ( a och bn och cn ) eller ( an och b och c och dn ); x <= ( an och bn och d ) eller ( an och bn och c och dn ) eller ( an och b och cn och dn ) eller ( a och bn och cn och d ); y <= ( an och cn och dn ) eller ( an och c och d ) eller ( a och bn och cn och dn ); z <= ( an och dn ) eller ( a och bn och cn och dn ); slutarkitektur dataflöde ; _ -- av bcd8421xs3
Tillägg
3-av-6 förlängning | |
---|---|
Siffror | 6 |
Spår | 6 |
Vikt(er) | 3 |
Kontinuitet | Nej |
Cyklisk | Nej |
Minsta avstånd | 2 |
Maximalt avstånd | 6 |
Lexikografi | 1 |
Komplement | (9) |
4-av-8 förlängning | |
---|---|
Siffror | 8 |
Spår | 8 |
Vikt(er) | 4 |
Kontinuitet | Nej |
Cyklisk | Nej |
Minsta avstånd | 4 |
Maximalt avstånd | 8 |
Lexikografi | 1 |
Komplement | 9 |
- 3-av-6 kodtillägg: Överskotts-3-koden används ibland också för dataöverföring, då ofta utökad till en 6-bitars kod per CCITT GT 43 nr 1, där 3 av 6 bitar är inställda.
- 4-av-8-kodtillägg: Som ett alternativ till IBM- sändtagarekoden (som är en 4-av-8-kod med ett Hamming-avstånd på 2), är det också möjligt att definiera en 4-av-8 överskott-3-kod förlängning som uppnår ett Hamming-avstånd på 4, om bara denary-siffror ska överföras.
Se även
- Offset binär , överskotts- N , partisk representation
- Överskott-128
- Överskott-Grå kod
- Skiftad grå kod
- Grå kod
- m-av-n-kod
- Aiken kod