Excesso-3 - Excess-3
Código Stibitz | |
---|---|
Dígitos | 4 |
Trilhas | 4 |
Valores de dígitos | 8 4 −2 −1 |
Peso (s) | 1..3 |
Continuidade | Não |
Cíclico | Não |
Distância mínima | 1 |
Distância máxima | 4 |
Redundância | 0,7 |
Lexicografia | 1 |
Complemento | 9 |
O código binário Excess-3 , 3-excess ou 10-excess-3 (frequentemente abreviado como XS-3 , 3XS ou X3 ), binário deslocado ou código Stibitz (após George Stibitz , que construiu uma máquina de somar baseada em relé em 1937) é um código decimal autocomplementar com codificação binária (BCD) e sistema numérico . É uma representação tendenciosa . O código Excess-3 foi usado em alguns computadores mais antigos, bem como em caixas registradoras e calculadoras eletrônicas portáteis de mão da década de 1970, entre outros usos.
Representação
Códigos polarizados são uma forma de representar valores com um número equilibrado de números positivos e negativos usando um número N pré-especificado como valor de polarização. Códigos tendenciosos (e códigos Gray ) são códigos não ponderados. No código de excesso-3, os números são representados como dígitos decimais, e cada dígito é representado por quatro bits como o valor do dígito mais 3 (a quantidade de "excesso"):
- O menor número binário representa o menor valor ( 0 - excesso ).
- O maior número binário representa o maior valor ( 2 N +1 - excesso - 1 ).
Decimal | Excesso-3 | Stibitz | BCD 8-4-2-1 | Binário | Extensão
CCITT 3 de 6 |
Extensão
Hamming 4 de 8 |
---|---|---|---|---|---|---|
-3 | 0000 | pseudo-tetrade | N / D | N / D | N / D | N / D |
-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 / D | N / D |
11 | 1110 | pseudo-tetrade | pseudo-tetrade | 1011 | ||
12 | 1111 | pseudo-tetrade | pseudo-tetrade | 1100 | ||
13 | N / D | N / D | pseudo-tetrade | 1101 | ||
14 | pseudo-tetrade | 1110 | ||||
15 | pseudo-tetrade | 1111 |
Para codificar um número como 127, basta codificar cada um dos dígitos decimais como acima, fornecendo (0100, 0101, 1010).
A aritmética Excess-3 usa algoritmos diferentes do BCD normal não polarizado ou dos números do sistema posicional binário . Depois de adicionar dois dígitos em excesso, a soma bruta é 6 em excesso. Por exemplo, após adicionar 1 (0100 em excesso-3) e 2 (0101 em excesso-3), a soma parece 6 (1001 em excesso-3) em vez de 3 (0110 em excesso-3). Para corrigir este problema, após adicionar dois dígitos, é necessário remover o viés extra subtraindo o binário 0011 (decimal 3 em binário imparcial) se o dígito resultante for menor que o decimal 10, ou subtraindo o binário 1101 (decimal 13 em imparcial binário) se um estouro (transporte) ocorreu. (No binário de 4 bits, subtrair o binário 1101 é equivalente a adicionar 0011 e vice-versa.)
Motivação
A principal vantagem da codificação em excesso-3 sobre a codificação não polarizada é que um número decimal pode ser complementado por noves (para subtração) tão facilmente quanto um número binário pode ser complementado por uns : apenas invertendo todos os bits. Além disso, quando a soma de dois dígitos excedentes-3 for maior que 9, o bit de transporte de um somador de 4 bits será definido como alto. Isso funciona porque, após somar dois dígitos, um valor "excedente" de 6 resulta na soma. Como um inteiro de 4 bits pode conter apenas valores de 0 a 15, um excesso de 6 significa que qualquer soma acima de 9 irá estourar (produzir um carry out).
Outra vantagem é que os códigos 0000 e 1111 não são usados para nenhum dígito. Uma falha na memória ou na linha de transmissão básica pode resultar nesses códigos. Também é mais difícil gravar o padrão zero em mídia magnética.
Exemplo
Exemplo de conversor BCD 8-4-2-1 para excesso-3 em 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
Extensões
Extensão 3 de 6 | |
---|---|
Dígitos | 6 |
Trilhas | 6 |
Peso (s) | 3 |
Continuidade | Não |
Cíclico | Não |
Distância mínima | 2 |
Distância máxima | 6 |
Lexicografia | 1 |
Complemento | (9) |
Extensão 4 de 8 | |
---|---|
Dígitos | 8 |
Trilhas | 8 |
Peso (s) | 4 |
Continuidade | Não |
Cíclico | Não |
Distância mínima | 4 |
Distância máxima | 8 |
Lexicografia | 1 |
Complemento | 9 |
- Extensão de código 3 de 6: o código excedente 3 às vezes também é usado para transferência de dados e, em seguida, frequentemente expandido para um código de 6 bits por CCITT GT 43 No. 1, onde 3 de 6 bits são definidos.
- Extensão do código 4 de 8: como alternativa ao código do transceptor IBM (que é um código 4 de 8 com uma distância de Hamming de 2), também é possível definir um código 4 de 8 excedente-3 extensão alcançando uma distância de Hamming de 4, se apenas dígitos denary devem ser transferidos.
Veja também
- Offset binário , excesso- N , representação enviesada
- Excess-128
- Código Excess-Gray
- Código cinza deslocado
- Código cinza
- código m-of-n
- Código Aiken