O código de Gray é um sistema de código binário inventado por Frank Gray. O código é não ponderado onde de um número para outro apenas um bit varia. Este sistema de codificação surgiu quando os circuitos lógicos digitais se realizavam com válvulas termoiônicas e dispositivos eletromecânicos. Os contadores necessitavam de potências muito elevadas e geravam ruído quando vários bits modificavam-se simultaneamente. O uso do código Gray garantiu que qualquer mudança variaria apenas um bit.

Atualmente o código Gray é utilizado em sistemas sequenciais mediante o uso dos Mapas de Karnaugh, já que o princípio do desenho de buscar transições mais simples e rápidas segue vigente, apesar de que os problemas de ruído e potência tenham sido reduzidos.

Código decimalCódigo BinárioCódigo Gray000000000100010001200100011300110010401000110501010111601100101701110100810001100910011101101010111111101111101211001010131101101114111010011511111000

Propriedades Palavras adjacentes variam apenas 1 bit Cíclico Reflectido Bit mais significativo é igual ao código binário natural

Método tabular de conversão A maneira mais fácil de construir a tabela de conversão base 10 para gray é usar um espelho. Começando no bit de índice 0, escrevemos o bit 0 e 1. Em seguida, aplicamos um espelho ao conjunto {01}, ficando o bit 0 com a seguinte ordenação {0110}. Agora, a primeira metade dos bits do índice 1 tomam o valor 0, e a outra metade o valor 1. O bit seguinte obtém-se aplicando o 'espelho' a todos os bits anteriores.

Ficheiro:Código-gray.png 12300

Método algébrico de conversão O método de obtenção do código Gray só é útil para comprimentos de palavra de 3/4 bits. Assim, torna-se necessário obter uma equação algébrica que converta de números binários para Gray e vice-versa. Tais equações podem ser deduzidas usando os Mapas de Kargnaugh para 4 bits e observar o padrão.

Conversão de código binário para código gray de N bits

Categoria:Ciência da computação Categoria:Codificação de caracteres Categoria:Arquitetura de computadores Categoria:Sistemas de numeração Categoria:Transmissão de dados Categoria:Tecnologia da informação