O sistema de numeração binário é o mais importante em sistemas digitais, mas há outros também importantes. É especialmente difícil tentar transmitir uma quantidade binária quando se está falando com alguém. O sistema de numeração de base hexadecimal (base 16) se tornou a maneira padrão de comunicar valores numéricos em sistemas digitais. A grande vantagem é que os números hexadecimais podem ser facilmente convertidos para o sistema binário e vice-versa. Veremos que muitas ferramentas de computador avançadas, que são projetadas para ajudar criadores de softwares a lidar com problemas ou vírus em seus programas, usam o sistema de numeração hexadecimal para inserir números armazenados no computador como binários e exibi-los novamente como hexadecimais. Outras maneiras de representar quantidades decimais com dígitos codificados em binário foram inventadas. Apesar de não serem realmente sistemas de numeração, facilitam a conversão entre o código binário e o sistema de numeração
decimal. Esses códigos costumam ser chamados de decimal codificado em binário (BCD). Quantidades e padrões de bits podem ser representados por quaisquer desses métodos em qualquer sistema dado e em todo o material escrito referente ao sistema digital. Por isso, é muito importante que você seja capaz de interpretar valores em qualquer sistema e efetuar conversões entre quaisquer dessas representações numéricas. Dessa forma, existem outros códigos que usam 1s e 0s para representar elementos como caracteres alfanuméricos. Apresente e explique os seguintes códigos:
a) GRAY
decimal. Esses códigos costumam ser chamados de decimal codificado em binário (BCD). Quantidades e padrões de bits podem ser representados por quaisquer desses métodos em qualquer sistema dado e em todo o material escrito referente ao sistema digital. Por isso, é muito importante que você seja capaz de interpretar valores em qualquer sistema e efetuar conversões entre quaisquer dessas representações numéricas. Dessa forma, existem outros códigos que usam 1s e 0s para representar elementos como caracteres alfanuméricos. Apresente e explique os seguintes códigos:
a) GRAY
Passo 1
O enunciado pede para apresentar e explicar o código Gray, que é um método de representar números inteiros em binário de modo que qualquer par de valores consecutivos difira em exatamente um bit. Para isso, vamos precisar entender operações bit a bit (especialmente o XOR) e o conceito de “reflexão” de uma sequência binária.
Passo 2
Definição e propriedade principal do código Gray
O código Gray (ou código binário refletido) é uma sequência de palavras binárias em que dois números adjacentes diferem em exatamente um bit. Essa propriedade minimiza erros em transições – útil em sensores rotativos, conversores analógico-digital e sistemas de comunicação.
O código Gray (ou código binário refletido) é uma sequência de palavras binárias em que dois números adjacentes diferem em exatamente um bit. Essa propriedade minimiza erros em transições – útil em sensores rotativos, conversores analógico-digital e sistemas de comunicação.
Passo 3
Geração de Gray a partir de um valor binário
Seja o número binário de
bits. O correspondente código Gray
é obtido por:
Seja
onde
é a operação XOR. Em forma vetorial,
isto é, cada bit de
é XORed com o bit à sua esquerda.
Passo 4
Conversão de Gray de volta para binário
Dado , recupera-se
assim:
Dado
Na prática, percorre-se
da esquerda para a direita acumulando XORs dos bits já decodificados.
Passo 5
Exemplo prático
- Converter o binário
(decimal 11) em Gray: Logo . - Voltar de
para binário: recuperando .
Passo 6
Vantagens e aplicações
- Em encoders rotativos, cada posição adjacente muda um bit, evitando ambiguidades durante transição.
- Sistemas digitais e testes de hardware usam Gray para reduzir metastabilidade em barramentos.
- Qualquer sequência de estados em que se queira minimizar alterações simultâneas de bits, pode usar código Gray.
Resposta
O código Gray é um código binário refletido em que números consecutivos diferem em apenas um bit. Gera-se de um valor binário
aplicando
. Para inverter, acumula-se XORs dos bits de Gray da esquerda para a direita. Esse código minimiza erros de transição e é amplamente usado em encoders rotativos, conversão A/D e sistemas digitais de alta confiabilidade.