Nadmiar-3
Kod Stibitza | |
---|---|
Cyfry | 4 |
Utwory | 4 |
Wartości cyfrowe | 8 4 −2 −1 |
Waga(-e) | 1..3 |
Ciągłość | NIE |
Cykliczny | NIE |
Minimalna odległość | 1 |
Maksymalna odległość | 4 |
Nadmierność | 0,7 |
Leksykografia | 1 |
Komplement | 9 |
Nadmiar-3 , 3-nadmiar lub 10-nadmiar-3 kod binarny (często w skrócie XS-3 , 3XS lub X3 ), przesunięty kod binarny lub kod Stibitza (od nazwiska George'a Stibitza , który zbudował maszynę sumującą opartą na przekaźnikach w 1937 r.) to samouzupełniający się kod dziesiętny (BCD) kodowany binarnie i system liczbowy . Jest to stronnicza reprezentacja . Kod Excess-3 był używany między innymi na niektórych starszych komputerach, a także w kasach fiskalnych i podręcznych przenośnych kalkulatorach elektronicznych z lat 70.
Reprezentacja
Kody tendencyjne to sposób przedstawiania wartości ze zrównoważoną liczbą liczb dodatnich i ujemnych przy użyciu wcześniej określonej liczby N jako wartości odchylającej. Kody tendencyjne (i kody Graya ) są kodami nieważonymi. W kodzie z nadmiarem 3 liczby są reprezentowane jako cyfry dziesiętne, a każda cyfra jest reprezentowana przez cztery bity jako wartość cyfry plus 3 („nadwyżka”):
- Najmniejsza liczba binarna reprezentuje najmniejszą wartość ( 0 − nadmiar ).
- Największa liczba binarna reprezentuje największą wartość ( 2 N +1 − nadmiar − 1 ).
Dziesiętny | Nadmiar-3 | Stibitza | BCD 8-4-2-1 | Dwójkowy | Rozszerzenie CCITT 3 z 6 |
Rozszerzenie Hamminga 4 z 8 |
---|---|---|---|---|---|---|
−3 | 0000 | pseudotetrada | Nie dotyczy | Nie dotyczy | Nie dotyczy | Nie dotyczy |
−2 | 0001 | pseudotetrada | ||||
−1 | 0010 | pseudotetrada | ||||
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 | pseudotetrada | pseudotetrada | 1010 | Nie dotyczy | Nie dotyczy |
11 | 1110 | pseudotetrada | pseudotetrada | 1011 | ||
12 | 1111 | pseudotetrada | pseudotetrada | 1100 | ||
13 | Nie dotyczy | Nie dotyczy | pseudotetrada | 1101 | ||
14 | pseudotetrada | 1110 | ||||
15 | pseudotetrada | 1111 |
Aby zakodować liczbę, taką jak 127, po prostu koduje się każdą z cyfr dziesiętnych, jak powyżej, dając (0100, 0101, 1010).
Arytmetyka nadmiaru-3 wykorzystuje inne algorytmy niż zwykłe nieobciążone BCD lub binarne liczby pozycyjne . Po dodaniu dwóch cyfr nadmiaru-3 surowa suma wynosi nadmiar-6. Na przykład po dodaniu 1 (0100 w nadmiarze-3) i 2 (0101 w nadmiarze-3) suma wygląda jak 6 (1001 w nadmiarze-3) zamiast 3 (0110 w nadmiarze-3). Aby rozwiązać ten problem, po dodaniu dwóch cyfr konieczne jest usunięcie dodatkowego odchylenia poprzez odjęcie binarnie 0011 (dziesiętne 3 w nieobciążonym systemie binarnym), jeśli wynikowa cyfra jest mniejsza niż dziesiętna 10, lub odjęcie dwójkowe 1101 (dziesiętne 13 w nieobciążonym systemie binarnym). binarny), jeśli wystąpiło przepełnienie (przeniesienie). (W 4-bitowym systemie binarnym odjęcie binarnej liczby 1101 jest równoznaczne z dodaniem 0011 i odwrotnie.)
Motywacja
Podstawową zaletą kodowania z nadmiarem 3 w porównaniu z kodowaniem nieobciążonym jest to, że liczbę dziesiętną można uzupełnić do dziewiątek (do odejmowania) tak łatwo, jak liczbę binarną można uzupełnić o jedynki : wystarczy odwrócić wszystkie bity. Ponadto, gdy suma dwóch dodatkowych 3 cyfr jest większa niż 9, bit przeniesienia 4-bitowego sumatora zostanie ustawiony na wysoki. Działa to, ponieważ po dodaniu dwóch cyfr „nadwyżka” wartości 6 daje sumę. Ponieważ 4-bitowa liczba całkowita może zawierać tylko wartości od 0 do 15, przekroczenie liczby 6 oznacza, że każda suma powyżej 9 przepełni się (spowoduje wykonanie).
Kolejną zaletą jest to, że kody 0000 i 1111 nie są używane dla żadnej cyfry. Usterka w pamięci lub podstawowej linii transmisyjnej może spowodować pojawienie się tych kodów. Trudniej jest również zapisać wzór zerowy na nośnikach magnetycznych.
Przykład
BCD 8-4-2-1 na nadmiar-3 w VHDL :
jednostka bcd8421xs3 to port ( a : w std_logic ; b : w std_logic ; c : w std_logic ; d : w std_logic ; an : bufor std_logic ; bn : bufor std_logic ; cn : bufor std_logic ; dn : bufor std_logic ; w : out std_logic ; x : out std_logic ; y : out std_logic ; z : out std_logic ); jednostka końcowa bcd8421xs3 ; architektura przepływu danych bcd8421xs3 to begin an < = not a ; bn <= nie b ; cn <= nie c ; dn <= nie d ; w <= ( an i b i d ) lub ( a i bn i cn ) lub ( an i b oraz c i dn ); x <= ( an i bn i d ) lub ( an i bn oraz c i dn ) lub ( an i b oraz cn i dn ) lub ( a i bn oraz cn i d ); y <= ( an i cn i dn ) lub ( an i c i d ) lub ( a i bn oraz cn i dn ); z <= ( an i dn ) lub ( a i bn oraz cn i dn ); koniec architektury przepływu danych ; -- bcd8421xs3
Rozszerzenia
Rozszerzenie 3 z 6 | |
---|---|
Cyfry | 6 |
Utwory | 6 |
Waga(-e) | 3 |
Ciągłość | NIE |
Cykliczny | NIE |
Minimalna odległość | 2 |
Maksymalna odległość | 6 |
Leksykografia | 1 |
Komplement | (9) |
Rozszerzenie 4 z 8 | |
---|---|
Cyfry | 8 |
Utwory | 8 |
Waga(-e) | 4 |
Ciągłość | NIE |
Cykliczny | NIE |
Minimalna odległość | 4 |
Maksymalna odległość | 8 |
Leksykografia | 1 |
Komplement | 9 |
- Rozszerzenie kodu 3 z 6: kod nadmiarowy 3 jest czasami używany do przesyłania danych, a następnie często rozszerzany do kodu 6-bitowego na CCITT GT 43 nr 1, gdzie ustawione są 3 z 6 bitów.
- Rozszerzenie kodu 4 z 8: Jako alternatywę dla kodu transceivera IBM (który jest kodem 4 z 8 z odległością Hamminga 2), możliwe jest również zdefiniowanie kodu nadmiarowego 4 z 8 rozszerzenie osiągające odległość Hamminga równą 4, jeśli mają być przesyłane tylko cyfry denarów.
Zobacz też
- Przesunięcie binarne , nadmiarowe N , stronnicza reprezentacja
- Nadmiar-128
- Kod nadmiaru Graya
- Przesunięty kod Graya
- Szary kod
- kod m-z-n
- Kod Aikena