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 ).
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
- Desplazamiento binario , exceso de N , representación sesgada
- Exceso-128
- Exceso de código Gray
- Código gris desplazado
- Código gris
- código m-de-n
- Código Aiken