Přebytek-3 - Excess-3

Stibitzův kód
Číslice 4
stopy 4
Číselné hodnoty 8 4  −2  −1
Hmotnost 1..3
Kontinuita Ne
Cyklický Ne
Minimální vzdálenost 1
Maximální vzdálenost 4
Nadbytek 0,7
Lexikografie 1
Doplněk 9

Přebytek-3 , 3-přebytek nebo 10-přebytek-3 binární kód (často zkráceně XS-3 , 3XS nebo X3 ), posunutý binární nebo Stibitzův kód (po Georgovi Stibitzovi , který v roce 1937 postavil sčítací stroj založený na relé) autokomplementární binárně kódovaný dekadický (BCD) kód a číselná soustava . Jedná se o zaujaté zastoupení . Kód Excess-3 byl použit na některých starších počítačích, mimo jiné i v pokladnách a ručních přenosných elektronických kalkulačkách ze 70. let.

Reprezentace

Předpjaté kódy jsou způsob, jak reprezentovat hodnoty s vyváženým počtem kladných a záporných čísel pomocí předem určeného čísla N jako hodnoty předpětí. Předpjaté kódy (a šedé kódy ) jsou nevážené kódy. V kódu přebytečné 3 jsou čísla reprezentována jako desetinná místa a každá číslice je reprezentována čtyřmi bity jako hodnota číslice plus 3 (částka „přebytek“):

  • Nejmenší binární číslo představuje nejmenší hodnotu ( 0 - přebytek ).
  • Největší binární číslo představuje největší hodnotu ( 2 N +1 - přebytek - 1 ).
Přebytek-3 a Stibitzův kód
Desetinný Přebytek-3 Stibitz BCD 8-4-2-1 Binární Rozšíření CCITT 3 ze 6
Hammingovo
rozšíření 4 z 8
-3 0000 pseudotetrade N / A N / A N / A N / A
-2 0001 pseudotetrade
-1 0010 pseudotetrade
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 pseudotetrade pseudotetrade 1010 N / A N / A
11 1110 pseudotetrade pseudotetrade 1011
12 1111 pseudotetrade pseudotetrade 1100
13 N / A N / A pseudotetrade 1101
14 pseudotetrade 1110
15 pseudotetrade 1111

Chcete-li zakódovat číslo, například 127, jednoduše zakódujte každou z desetinných číslic, jak je uvedeno výše, přičemž uvedete (0100, 0101, 1010).

Aritmetika Excess-3 používá jiné algoritmy než normální neobjektivní BCD nebo binární čísla pozičního systému . Po přidání dvou přebytečných 3 číslic je surový součet přebytek-6. Například po přidání 1 (0100 v přebytku-3) a 2 (0101 v přebytku-3) vypadá součet jako 6 (1001 v přebytku-3) namísto 3 (0110 v přebytku-3). Abychom tento problém napravili, po přidání dvou číslic je nutné odstranit zvláštní zkreslení odečtením binárního 0011 (desetinné číslo 3 v nezaujatém binárním souboru), pokud je výsledná číslice menší než desetinné číslo 10, nebo odečtením binárního čísla 1101 (desítkové 13 v nezaujatém formátu). binární), pokud došlo k přetečení (přenášení). (Ve 4bitovém binárním formátu je odečtení binárního čísla 1101 ekvivalentní přidání 0011 a naopak.)

Motivace

Primární výhodou kódování přebytečného 3 nad kódováním bez předpětí je to, že desítkové číslo může být doplněno devítkami (pro odečtení) tak snadno, jak může být doplněno binární číslo : pouhým převrácením všech bitů. Když je součet dvou přebytečných 3 číslic větší než 9, přenosový bit 4bitového sčítače bude nastaven vysoko. Funguje to, protože po přidání dvou číslic bude výsledkem součtu hodnota „překročení“ 6. Protože 4bitové celé číslo může obsahovat pouze hodnoty 0 až 15, přebytek 6 znamená, že jakákoli částka nad 9 přeteče (způsobí provedení).

Další výhodou je, že kódy 0000 a 1111 se nepoužívají pro žádnou číslici. Porucha paměti nebo základního přenosového vedení může mít za následek tyto kódy. Je také obtížnější zapsat nulový vzor na magnetická média.

Příklad

Příklad převaděče BCD 8-4-2-1 na přebytečný 3 ve 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

Rozšíření

Prodloužení 3 ze 6
Číslice 6
stopy 6
Hmotnost 3
Kontinuita Ne
Cyklický Ne
Minimální vzdálenost 2
Maximální vzdálenost 6
Lexikografie 1
Doplněk (9)
Prodloužení 4 z 8
Číslice 8
stopy 8
Hmotnost 4
Kontinuita Ne
Cyklický Ne
Minimální vzdálenost 4
Maximální vzdálenost 8
Lexikografie 1
Doplněk 9
  • Rozšíření kódu 3 ze 6: Kód nadbytečného 3 se někdy používá také pro přenos dat, poté se často rozšíří na 6bitový kód na CCITT GT 43 č. 1, kde jsou nastaveny 3 ze 6 bitů.
  • Rozšíření kódu 4 z 8: Jako alternativu k kódu transceiveru IBM (což je kód 4 z 8 s Hammingovou vzdáleností 2) je také možné definovat kód 4 z 8 nadbytečného 3 rozšíření dosahující Hammingovy vzdálenosti 4, pokud mají být přeneseny pouze číslice denáře.

Viz také

Reference