Nadmiar-3 - Excess-3
Kod Stibitz | |
---|---|
Cyfry | 4 |
Utwory | 4 |
Wartości cyfrowe | 8 4 −2 −1 |
Waga (y) | 1..3 |
Ciągłość | Nie |
Cykliczny | Nie |
Minimalna odległość | 1 |
Maksymalna odległość | 4 |
Nadmierność | 0,7 |
Leksykografia | 1 |
Komplement | 9 |
Kod binarny nadmiarowy-3 , 3-nadmiarowy lub 10-nadmiarowy-3 (często w skrócie XS-3 , 3XS lub X3 ), przesunięty kod binarny lub kod Stibitza (według George'a Stibitza , który zbudował maszynę dodającą opartą na przekaźnikach w 1937 roku) jest uzupełniający się kod dziesiętny kodowany binarnie (BCD) i system liczbowy . To jest stronnicza reprezentacja . Kod nadmiarowy-3 był używany między innymi w niektórych starszych komputerach, a także w kasach fiskalnych i ręcznych przenośnych kalkulatorach elektronicznych z lat 70.
Reprezentacja
Kody odchylenia są sposobem przedstawiania wartości o zrównoważonej liczbie liczb dodatnich i ujemnych przy użyciu wstępnie określonej liczby N jako wartości odchylenia. Kody tendencyjne (i kody Graya ) są kodami nieważonymi. W kodzie powyżej 3 liczby są przedstawiane jako cyfry dziesiętne, a każda cyfra jest reprezentowana przez cztery bity jako wartość cyfry plus 3 (kwota „nadwyżki”):
- Najmniejsza liczba binarna reprezentuje najmniejszą wartość ( 0 - przekroczenie ).
- Największa liczba binarna reprezentuje największą wartość ( 2 N +1 - przekroczenie - 1 ).
Dziesiętny | Nadmiar-3 | Stibitz | BCD 8-4-2-1 | Dwójkowy | Rozszerzenie
CCITT 3 z 6 |
Rozszerzenie
Hamminga 4-of-8 |
---|---|---|---|---|---|---|
−3 | 0000 | pseudo-tetrade | Nie dotyczy | Nie dotyczy | Nie dotyczy | Nie dotyczy |
−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 | Nie dotyczy | Nie dotyczy |
11 | 1110 | pseudo-tetrade | pseudo-tetrade | 1011 | ||
12 | 1111 | pseudo-tetrade | pseudo-tetrade | 1100 | ||
13 | Nie dotyczy | Nie dotyczy | pseudo-tetrade | 1101 | ||
14 | pseudo-tetrade | 1110 | ||||
15 | pseudo-tetrade | 1111 |
Aby zakodować liczbę taką jak 127, wystarczy po prostu zakodować każdą z cyfr dziesiętnych, jak powyżej, dając (0100, 0101, 1010).
Arytmetyka Excess-3 używa innych algorytmów niż zwykłe nieobciążone BCD lub binarne liczby systemu pozycyjnego . Po dodaniu dwóch dodatkowych 3 cyfr, surowa suma wynosi ponad 6. Na przykład po dodaniu 1 (0100 w nadmiarze-3) i 2 (0101 w nadmiarze-3) suma wygląda następująco: 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, odejmując dwójkową 0011 (dziesiętną 3 w nieobciążonej dwójce), jeśli wynikowa cyfra jest mniejsza niż dziesiętna 10 lub odejmując dwójkową 1101 (dziesiętną 13 w nieobciążonej binarny), jeśli wystąpiło przepełnienie (przeniesienie). (W 4-bitowym systemie binarnym odejmowanie liczby binarnej 1101 jest równoważne dodaniu 0011 i odwrotnie).
Motywacja
Główną zaletą kodowania nadmiarowego-3 w porównaniu z kodowaniem bez obciążenia polaryzacyjnego jest to, że liczba dziesiętna może być uzupełniana do dziewiątek (do odejmowania) tak łatwo, jak liczba binarna może być uzupełniana : wystarczy odwrócić wszystkie bity. Ponadto, gdy suma dwóch dodatkowych 3 cyfr jest większa niż 9, bit przenoszenia 4-bitowego sumatora zostanie ustawiony wysoko. To działa, ponieważ po dodaniu dwóch cyfr „nadwyżka” wartości 6 daje sumę. Ponieważ 4-bitowa liczba całkowita może przechowywać tylko wartości od 0 do 15, przekroczenie 6 oznacza, że każda suma powyżej 9 przepełni (spowoduje wykonanie).
Kolejną zaletą jest to, że kody 0000 i 1111 nie są używane dla żadnej cyfry. Uszkodzenie pamięci lub podstawowej linii transmisyjnej może skutkować tymi kodami. Trudniej jest również zapisać wzór zerowy na nośnikach magnetycznych.
Przykład
Przykład konwertera BCD 8-4-2-1 na nadmiar 3 w 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
Rozszerzenia
Rozszerzenie 3-of-6 | |
---|---|
Cyfry | 6 |
Utwory | 6 |
Waga (y) | 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 (y) | 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 ustawiane są 3 z 6 bitów.
- Rozszerzenie kodu 4-z-8: Jako alternatywę dla kodu nadawczo-odbiorczego IBM (który jest kodem 4-z-8 z odległością Hamminga 2), możliwe jest również zdefiniowanie kodu 4-z-8 nadmiarowego-3 przedłużenie osiągając odległość Hamminga 4, jeśli mają być przekazywane tylko cyfry denarowe.
Zobacz też
- Offset binarny , nadmiar N , stronniczy reprezentacja
- Ponad 128
- Kod nadmiaru Graya
- Przesunięty kod Graya
- Kod szary
- Kod m-of-n
- Kod Aiken