Eccesso-3 - Excess-3
| Codice Stibitz | |
|---|---|
| Cifre | 4 |
| Brani | 4 |
| Valori delle cifre | 8 4 −2 −1 |
| Peso (i) | 1..3 |
| Continuità | No |
| Ciclico | No |
| Distanza minima | 1 |
| Distanza massima | 4 |
| Ridondanza | 0.7 |
| Lessicografia | 1 |
| Complemento | 9 |
Codice binario in eccesso 3 , 3 in eccesso o 10 in eccesso 3 (spesso abbreviato in XS-3 , 3XS o X3 ), codice binario spostato o Stibitz (dopo George Stibitz , che ha costruito una macchina addizionatrice a relè nel 1937) è un sistema numerico e un codice decimale codificato in binario (BCD) autocomplementare . È una rappresentazione parziale . Il codice in eccesso-3 è stato utilizzato su alcuni computer più vecchi, nonché nei registratori di cassa e nelle calcolatrici elettroniche portatili portatili degli anni '70, tra gli altri usi.
Rappresentazione
I codici distorti sono un modo per rappresentare valori con un numero equilibrato di numeri positivi e negativi utilizzando un numero pre-specificato N come valore di polarizzazione. I codici distorti (e codici Gray ) sono codici non ponderati. Nel codice in eccesso di 3, i numeri sono rappresentati come cifre decimali e ogni cifra è rappresentata da quattro bit come il valore della cifra più 3 (l'importo "in eccesso"):
- Il numero binario più piccolo rappresenta il valore più piccolo ( 0 - eccesso ).
- Il numero binario più grande rappresenta il valore più grande ( 2 N +1 - eccesso - 1 ).
| Decimale | Eccesso-3 | Stibitz | BCD 8-4-2-1 | Binario | Estensione
CCITT 3 di 6 |
Estensione
Hamming 4-of-8 |
|---|---|---|---|---|---|---|
| −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 |
Per codificare un numero come 127, si codifica semplicemente ciascuna delle cifre decimali come sopra, dando (0100, 0101, 1010).
L'aritmetica in eccesso di 3 utilizza algoritmi diversi rispetto ai normali BCD non distorti o ai numeri di sistema posizionali binari . Dopo aver aggiunto due cifre in eccesso a 3, la somma grezza è a 6 cifre in eccesso. Ad esempio, dopo aver aggiunto 1 (0100 in eccesso-3) e 2 (0101 in eccesso-3), la somma appare come 6 (1001 in eccesso-3) invece di 3 (0110 in eccesso-3). Per correggere questo problema, dopo aver aggiunto due cifre, è necessario rimuovere il bias extra sottraendo binario 0011 (decimale 3 in binario non corretto) se la cifra risultante è inferiore a 10 decimale, o sottraendo binario 1101 (decimale 13 in binario non corretto binario) se si è verificato un overflow (carry). (Nel binario a 4 bit, la sottrazione di 1101 binario equivale ad aggiungere 0011 e viceversa.)
Motivazione
Il vantaggio principale della codifica in eccesso di 3 rispetto alla codifica non polarizzata è che un numero decimale può essere completato con nove (per sottrazione) con la stessa facilità con cui un numero binario può essere integrato con uno : semplicemente invertendo tutti i bit. Inoltre, quando la somma di due cifre in eccesso di 3 è maggiore di 9, il bit di riporto di un sommatore a 4 bit sarà impostato alto. Questo funziona perché, dopo aver aggiunto due cifre, un valore "in eccesso" di 6 risulta nella somma. Poiché un numero intero a 4 bit può contenere solo valori da 0 a 15, un eccesso di 6 significa che qualsiasi somma superiore a 9 andrà in overflow (produrrà un'esecuzione).
Un altro vantaggio è che i codici 0000 e 1111 non vengono utilizzati per nessuna cifra. Un guasto in una memoria o in una linea di trasmissione di base può causare questi codici. È anche più difficile scrivere il modello zero su un supporto magnetico.
Esempio
Esempio di convertitore da BCD 8-4-2-1 a 3 in eccesso 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
Estensioni
| Estensione 3 di 6 | |
|---|---|
| Cifre | 6 |
| Brani | 6 |
| Peso (i) | 3 |
| Continuità | No |
| Ciclico | No |
| Distanza minima | 2 |
| Distanza massima | 6 |
| Lessicografia | 1 |
| Complemento | (9) |
| Estensione 4 su 8 | |
|---|---|
| Cifre | 8 |
| Brani | 8 |
| Peso (i) | 4 |
| Continuità | No |
| Ciclico | No |
| Distanza minima | 4 |
| Distanza massima | 8 |
| Lessicografia | 1 |
| Complemento | 9 |
- Estensione del codice 3 di 6: il codice in eccesso di 3 viene talvolta utilizzato anche per il trasferimento dei dati, quindi spesso espanso in un codice a 6 bit per CCITT GT 43 n. 1, dove sono impostati 3 bit su 6.
- Estensione codice 4 di 8: in alternativa al codice ricetrasmettitore IBM (che è un codice 4 di 8 con una distanza di Hamming di 2), è anche possibile definire un codice di 3 in eccesso 4 di 8 estensione che raggiunge una distanza di Hamming di 4, se devono essere trasferite solo cifre negate.
Guarda anche
- Binario offset , eccesso di N , rappresentazione distorta
- Excess-128
- Codice Gray in eccesso
- Codice Gray spostato
- Codice Gray
- codice m-of-n
- Codice Aiken