Exceso-3 - Excess-3

Código Stibitz
Dígitos 4
Pistas 4
Valores de dígitos 8 4  −2  −1
Peso (s) 1..3
Continuidad No
Cíclico No
Distancia minima 1
Distancia máxima 4
Redundancia 0,7
Lexicografía 1
Complemento 9

Exceso-3 , 3-exceso o 10-exceso-3 código binario (a menudo abreviado como XS-3 , 3XS o X3 ), código binario desplazado o Stibitz (después de George Stibitz , quien construyó una máquina sumadora basada en relés en 1937) un sistema numérico y de código decimal codificado en binario (BCD) autocomplementario . Es una representación sesgada . El código Excess-3 se utilizó en algunas computadoras antiguas, así como en cajas registradoras y calculadoras electrónicas portátiles de mano de la década de 1970, entre otros usos.

Representación

Los códigos sesgados son una forma de representar valores con un número equilibrado de números positivos y negativos utilizando un número N preespecificado como valor de sesgo. Los códigos sesgados (y los códigos Gray ) son códigos no ponderados. En el código de exceso de 3, los números se representan como dígitos decimales y cada dígito se representa con cuatro bits como el valor del dígito más 3 (la cantidad "excedente"):

  • El número binario más pequeño representa el valor más pequeño ( 0 - exceso ).
  • El número binario más grande representa el valor más grande ( 2 N +1 - exceso - 1 ).
Exceso-3 y código Stibitz
Decimal Exceso-3 Stibitz BCD 8-4-2-1 Binario Extensión CCITT 3 de 6
Extensión de Hamming 4 de 8
−3 0000 pseudo-tétrada N / A N / A N / A N / A
−2 0001 pseudo-tétrada
−1 0010 pseudo-tétrada
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-tétrada pseudo-tétrada 1010 N / A N / A
11 1110 pseudo-tétrada pseudo-tétrada 1011
12 1111 pseudo-tétrada pseudo-tétrada 1100
13 N / A N / A pseudo-tétrada 1101
14 pseudo-tétrada 1110
15 pseudo-tétrada 1111

Para codificar un número como 127, uno simplemente codifica cada uno de los dígitos decimales como se indicó anteriormente, dando (0100, 0101, 1010).

La aritmética Excess-3 usa algoritmos diferentes a los números de sistema posicional binario o BCD no sesgados normales . Después de agregar dos dígitos de exceso de 3, la suma bruta es de exceso de 6. Por ejemplo, después de agregar 1 (0100 en exceso-3) y 2 (0101 en exceso-3), la suma parece 6 (1001 en exceso-3) en lugar de 3 (0110 en exceso-3). Para corregir este problema, después de sumar dos dígitos, es necesario eliminar el sesgo adicional restando 0011 binario (decimal 3 en binario insesgado) si el dígito resultante es menor que 10 decimal, o restando 1101 binario (decimal 13 en binario insesgado) binario) si se ha producido un desbordamiento (acarreo). (En binario de 4 bits, restar 1101 binario es equivalente a sumar 0011 y viceversa).

Motivación

La principal ventaja de la codificación con exceso de 3 sobre la codificación no sesgada es que un número decimal puede complementarse con nueves (para restar) tan fácilmente como un número binario puede complementarse con unidades: simplemente invirtiendo todos los bits. Además, cuando la suma de dos dígitos en exceso de 3 es mayor que 9, el bit de acarreo de un sumador de 4 bits se establecerá alto. Esto funciona porque, después de agregar dos dígitos, un valor "en exceso" de 6 da como resultado la suma. Debido a que un entero de 4 bits solo puede contener valores de 0 a 15, un exceso de 6 significa que cualquier suma superior a 9 se desbordará (producirá una ejecución).

Otra ventaja es que los códigos 0000 y 1111 no se utilizan para ningún dígito. Una falla en una memoria o línea de transmisión básica puede resultar en estos códigos. También es más difícil escribir el patrón cero en medios magnéticos.

Ejemplo

Ejemplo de convertidor BCD 8-4-2-1 a exceso-3 en 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

Extensiones

Extensión 3 de 6
Dígitos 6
Pistas 6
Peso (s) 3
Continuidad No
Cíclico No
Distancia minima 2
Distancia máxima 6
Lexicografía 1
Complemento (9)
Extensión 4 de 8
Dígitos 8
Pistas 8
Peso (s) 4
Continuidad No
Cíclico No
Distancia minima 4
Distancia máxima 8
Lexicografía 1
Complemento 9
  • Extensión de código 3 de 6: el código de exceso de 3 a veces también se usa para la transferencia de datos, luego a menudo se expande a un código de 6 bits según CCITT GT 43 No. 1, donde se establecen 3 de 6 bits.
  • Extensión de código 4 de 8: como alternativa al código del transceptor de IBM (que es un código 4 de 8 con una distancia de Hamming de 2), también es posible definir un código de 3 en exceso 4 de 8 extensión logrando una distancia de Hamming de 4, si solo se van a transferir dígitos denarios.

Ver también

Referencias