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 ).
Nadmiar-3 i kod Stibitza
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ż