1001Ferramentas
🛡️ Dev

Gerador de Código Hamming (7,4)

Codifica 4 bits de dados em 7 bits Hamming com paridade, capaz de corrigir 1 bit errado. Mostra também a detecção do erro.

Codificado (p1 p2 d1 p3 d2 d3 d4):
Recebido (após erro):
Síndrome:
Bit errado detectado:
Corrigido:

Hamming (7,4): corrigir um bit errado sem pedir retransmissão

O código de Hamming resolve um problema específico: detectar e corrigir a inversão de um único bit, sem precisar reenviar nada. Ele faz isso acrescentando bits de paridade em posições escolhidas de propósito — as potências de dois. Na versão (7,4), quatro bits de dados viram sete bits transmitidos, com três bits de paridade nas posições 1, 2 e 4.

Digite os quatro bits de dados e a página mostra a palavra codificada. Escolhendo introduzir um erro em qualquer posição de 1 a 7, você vê o que chega do outro lado, o síndrome calculado pelo receptor e a correção aplicada. O detalhe elegante do esquema aparece aí: o síndrome, lido como número binário, é exatamente a posição do bit invertido. Zero significa que nada foi corrompido.

O limite é honesto e vale conhecer: um bit errado é corrigido, dois bits errados são detectados como erro mas corrigidos para a palavra errada. Por isso existe a variante estendida, com um bit de paridade global a mais, que distingue os dois casos. Hamming aparece em memória ECC, onde uma falha isolada de célula é comum e reenviar não é opção.

Perguntas frequentes

Por que os bits de paridade ficam nas potências de dois?
Porque essa escolha faz o síndrome apontar direto para a posição do erro. Cada bit de paridade cobre as posições cujo índice tem aquele bit ligado, então os testes de paridade, lidos juntos como número binário, formam o próprio índice da posição corrompida — sem tabela de consulta nenhuma.
Isso protege contra alteração maliciosa?
Não, e a confusão é comum. Hamming corrige ruído, não adversário: quem altera os dados de propósito recalcula os bits de paridade junto. Contra alteração intencional o instrumento é código de autenticação de mensagem ou assinatura, que dependem de uma chave.
Qual o custo do código?
Nesta versão, três bits de paridade para quatro de dados, ou seja quase metade da transmissão. A proporção melhora muito com blocos maiores: Hamming (15,11) gasta quatro bits de paridade para onze de dados, e (31,26) gasta cinco para vinte e seis — sempre corrigindo um bit por bloco.

Ferramentas Relacionadas