Överskott-3

Stibitz-kod
Siffror 4
Spår 4
Siffervärden   8 4 −2 −1
Vikt(er) 1..3
Kontinuitet Nej
Cyklisk Nej
Minsta avstånd 1
Maximalt avstånd 4
Redundans 0,7
Lexikografi 1
Komplement 9

Excess-3 , 3-excess eller 10-excess-3 binär kod (ofta förkortad som XS-3 , 3XS eller X3 ), skiftad binär eller Stibitz-kod (efter George Stibitz , som byggde en reläbaserad adderingsmaskin 1937) är ett självkomplementärt binärt kodat decimalsystem (BCD) och siffror . Det är en partisk representation . Excess-3-kod användes på vissa äldre datorer såväl som i kassaapparater och handhållna bärbara elektroniska miniräknare på 1970-talet, bland annat.

Representation

Biased koder är ett sätt att representera värden med ett balanserat antal positiva och negativa siffror med ett fördefinierat nummer N som ett biasingvärde. Partiska koder (och grå koder ) är icke-viktade koder. I överskott-3-kod representeras siffror som decimalsiffror, och varje siffra representeras av fyra bitar som siffervärdet plus 3 (det "överskjutande" beloppet):

  • Det minsta binära talet representerar det minsta värdet ( 0 − överskott) .
  • Det största binära talet representerar det största värdet ( 2 N +1 − överskott − 1 ) .
Excess-3 och Stibitz-kod
Decimal Överskott-3 Stibitz BCD 8-4-2-1 Binär
3-av-6 CCITT- förlängning

4-av-8 Hamming- förlängning
−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

För att koda ett tal som 127, kodar man helt enkelt var och en av decimalsiffrorna enligt ovan, vilket ger (0100, 0101, 1010).

Excess-3 aritmetik använder andra algoritmer än normala icke-partiska BCD eller binära positionssystemnummer . Efter att ha lagt till två överskjutande 3 siffror är råsumman överskjutande 6. Till exempel, efter att ha lagt till 1 (0100 i överskott-3) och 2 (0101 i överskott-3), ser summan ut som 6 (1001 i överskott-3) istället för 3 (0110 i överskott-3). För att rätta till detta problem, efter att ha lagt till två siffror, är det nödvändigt att ta bort den extra förspänningen genom att subtrahera binär 0011 (decimal 3 i opartisk binär) om den resulterande siffran är mindre än decimal 10, eller subtrahera binär 1101 (decimal 13 i opartisk binär) om ett spill (carry) har inträffat. (I 4-bitars binär är subtrahering av binär 1101 ekvivalent med att lägga till 0011 och vice versa.)

Motivering

Den primära fördelen med kodning med excess-3 jämfört med icke-förspänd kodning är att ett decimaltal kan kompletteras med nio (för subtraktion) lika lätt som ett binärt tal kan kompletteras med ettor : bara genom att invertera alla bitar. Dessutom, när summan av två överflödiga 3 siffror är större än 9, kommer bärbiten för en 4-bitars adderare att ställas in högt. Detta fungerar eftersom, efter att ha lagt till två siffror, resulterar ett "överskottsvärde" på 6 i summan. Eftersom ett 4-bitars heltal bara kan innehålla värdena 0 till 15, betyder ett överskott på 6 att varje summa över 9 kommer att svämma över (producerar en utförande).

En annan fördel är att koderna 0000 och 1111 inte används för någon siffra. Ett fel i ett minne eller en grundläggande transmissionsledning kan resultera i dessa koder. Det är också svårare att skriva nollmönstret till magnetiska medier.

Exempel

BCD 8-4-2-1 till excess-3-omvandlarexempel i VHDL :

  
   
            
            
            
            

        
        
        
        

           
           
           
           
  
  

    

         
         
         
         

                      
                  
                       
                          
                     
                 
                    

    entitet  bcd8421xs3  är  port  (  a  :  i  std_logic  ;  b  :  i  std_logic  ;  c  :  i  std_logic  ;  d  :  i  std_logic  ;  an  :  buffert  std_logic  ;  bn  :  buffert  std_logic  ;  cn  :  buffert  std_logic  :  buffert  std_logic  ;  dn  :  buffert  std_logic  ;  std_logic  _  x  :  ut  std_logic  ;  y  :  ut  std_logic  ;  z  :  ut  std_logic  );  slutenhet  bcd8421xs3  ;  _  arkitekturdataflödet  för  bcd8421xs3  är  start  en  <  =  inte  en  ;  bn  <=  inte  b  ;  cn  <=  inte  c  ;  dn  <=  inte  d  ;  w  <=  (  an  och  b  och  d  )  eller  (  a  och  bn  och  cn  )  eller  (  an  och  b  och  c  och  dn  );  x  <=  (  an  och  bn  och  d  )  eller  (  an  och  bn  och  c  och  dn  )  eller  (  an  och  b  och  cn  och  dn  )  eller  (  a  och  bn  och  cn  och  d  );  y  <=  (  an  och  cn  och  dn  )  eller  (  an  och  c  och  d  )  eller  (  a  och  bn  och  cn  och  dn  );  z  <=  (  an  och  dn  )  eller  (  a  och  bn  och  cn  och  dn  );  slutarkitektur  dataflöde  ;  _  -- av bcd8421xs3 

Tillägg

3-av-6 förlängning
Siffror 6
Spår 6
Vikt(er) 3
Kontinuitet Nej
Cyklisk Nej
Minsta avstånd 2
Maximalt avstånd 6
Lexikografi 1
Komplement (9)
4-av-8 förlängning
Siffror 8
Spår 8
Vikt(er) 4
Kontinuitet Nej
Cyklisk Nej
Minsta avstånd 4
Maximalt avstånd 8
Lexikografi 1
Komplement 9
  • 3-av-6 kodtillägg: Överskotts-3-koden används ibland också för dataöverföring, då ofta utökad till en 6-bitars kod per CCITT GT 43 nr 1, där 3 av 6 bitar är inställda.
  • 4-av-8-kodtillägg: Som ett alternativ till IBM- sändtagarekoden (som är en 4-av-8-kod med ett Hamming-avstånd på 2), är det också möjligt att definiera en 4-av-8 överskott-3-kod förlängning som uppnår ett Hamming-avstånd på 4, om bara denary-siffror ska överföras.

Se även