Numexa logoNumexa

Código de Hamming

Codifique, detecte e corrija erros de 1 bit, com passo a passo.

Hamming(7,4) · 3 bits de paridade
0
1
p1
1
2
p2
1
3
d1
0
4
p4
0
5
d2
1
6
d3
1
7
d4
  1. p1 verifica as posições 3, 5, 7 → XOR dos dados = 0
  2. p2 verifica as posições 3, 6, 7 → XOR dos dados = 1
  3. p4 verifica as posições 5, 6, 7 → XOR dos dados = 0

A calculadora de código de Hamming gera a palavra-código a partir dos bits de dados, explicando o cálculo de cada bit de paridade, e faz o caminho inverso: recebe uma palavra com erro, calcula a síndrome e corrige o bit trocado.

Exemplo Resolvido: Hamming(7,4) com os Dados 1011

As posições ficam: p1 p2 d1 p4 d2 d3 d4 → p1 p2 1 p4 0 1 1.

  • p1 verifica 3, 5, 7: 1 ⊕ 0 ⊕ 1 = 0
  • p2 verifica 3, 6, 7: 1 ⊕ 1 ⊕ 1 = 1
  • p4 verifica 5, 6, 7: 0 ⊕ 1 ⊕ 1 = 0

Palavra-código: 0110011.

Exemplo de Correção

Suponha que chegou 0110001 (o bit 6 trocou). Recalculando: p1 bate (0), p2 falha (1), p4 falha (1). Síndrome = 110 = 6. Basta inverter o bit 6 para recuperar 0110011 e os dados 1011.

Onde o Código de Hamming é Usado

  • Memória RAM ECC de servidores, que corrige erros de bit causados por radiação e ruído.
  • Comunicação com satélites e sondas espaciais.
  • Base para códigos mais fortes, como os usados em SSDs, QR Codes e transmissões digitais.

Perguntas Frequentes

O que é o código de Hamming?

É um código corretor de erros criado por Richard Hamming em 1950. Ele adiciona bits de paridade em posições que são potências de 2 (1, 2, 4, 8...) e consegue descobrir e corrigir qualquer erro de um único bit na transmissão ou na memória.

Como calcular os bits de paridade?

Cada bit de paridade na posição p verifica todas as posições cujo número binário tem o bit p ligado. p1 verifica 1, 3, 5, 7...; p2 verifica 2, 3, 6, 7...; p4 verifica 4, 5, 6, 7... O valor é o XOR dos dados verificados (paridade par).

Como encontrar o bit errado?

Recalcule cada paridade no código recebido. Escreva 1 para as que falharam e 0 para as que bateram, da maior para a menor: esse número binário é a síndrome e indica a posição exata do bit errado. Síndrome 0 significa sem erro.

Quantos bits de paridade são necessários?

O menor r tal que 2^r ≥ m + r + 1, onde m é a quantidade de bits de dados. Para 4 bits de dados são 3 de paridade (Hamming 7,4); para 8 bits são 4 (Hamming 12,8); para 26 bits são 5 (Hamming 31,26).

Ferramentas Relacionadas