Hamming code is a set of error-correction code s that can be used to detect and correct bit errors that can occur when computer data is moved or stored. O código Hamming é nomeado para R. W. Hamming of Bell Labs.
Como outro código de correção de erros, o código Hamming faz uso do conceito de paridade e paridade de bit s, que são bits que são adicionados aos dados para que a validade dos dados possa ser verificada quando eles são lidos ou após terem sido recebidos em uma transmissão de dados. Usando mais de um bit de paridade, um código de correção de erro pode não só identificar um único bit de erro na unidade de dados, mas também sua localização na unidade de dados.
Na transmissão de dados, a capacidade de uma estação receptora de corrigir erros nos dados recebidos é chamada de correção de erro forward error (FEC) e pode aumentar a produção em um link de dados quando há muito ruído presente. Para habilitar isso, uma estação transmissora deve adicionar dados extras (chamados bits de correção de erros ) à transmissão. Entretanto, a correção pode não representar sempre uma economia de custos em relação ao simples reenvio da informação. Códigos de Hamming tornam o FEC menos dispendioso de implementar através do uso de um mecanismo paridade de bloco.
Paridade de computação envolve a contagem do número de um em uma unidade de dados, e a adição de um zero ou um (chamado bit de paridade ) para fazer a contagem ímpar (para paridade ímpar) ou uniforme (para paridade uniforme). Por exemplo, 1001 é uma unidade de dados de 4 bits contendo dois bits de um; como esse é um número par, um zero seria adicionado para manter a paridade par, ou, se a paridade ímpar estivesse sendo mantida, outro seria adicionado. Para calcular a paridade par, é utilizado o operador XOR; para calcular a paridade ímpar, é utilizado o operador XNOR. Os erros de bit único são detectados quando a contagem da paridade indica que o número de bits está incorrecto, indicando que um bit de dados foi invertido por ruído na linha. Os códigos de Hamming detectam dois erros de bit usando mais de um bit de paridade, cada um dos quais é computado em diferentes combinações de bits nos dados. O número de bits de paridade requerido depende do número de bits na transmissão de dados, e é calculado pela regra de Hamming:
p
d + p + 1 < = 2 (1)
Where d é o número de bits de dados e p é o número de bits de paridade. O total dos dois é chamado de palavra de código Hamming, que é gerado pela multiplicação dos bits de dados por uma matriz geradora .