Como calcular o código de Hamming
Passo 1
Crie a palavra de dados. Qualquer bit com uma posição que seja uma potência de dois (primeiro, segundo, quarto, etc.) deve ser reservado para as informações de paridade. Use o tamanho de uma palavra que você precisa para se adaptar à fonte de dados e aos bits de paridade.
Por exemplo:
1 1 0 1 0 0 1 0 torna-se _ _ 1 _ 1 0 1 _ 0 0 1 0
Os bits permanecem na mesma ordem, mas foram estendidos para acomodar os bits de paridade.
Passo 2
Calcule o bit de paridade primeiro. Começando com o primeiro bit, leia um pouco, pule um pouco e repita a operação, contando o número dos que foram encontrados. Os bits de paridade contam como zeros.
Se o número de uns for par, coloque o primeiro bit como zero. Caso contrário, coloque como um.
Por exemplo:
Os bits 1, 3, 5, 7, 9 e 11, de __ 1 _ 1 0 1 _ 0 0 1 0, _11101, contêm quatro. Isso é par, portanto, o primeiro bit é definido como zero: 0 _ 1 _ 1 0 1 _ 0 0 1 0.
Passo 3
Calcule os bits de paridade restantes. O bit dois lê dois bits do bit dois, depois salta dois e repete. O bit quatro lê quatro bits, depois pula quatro e começa com o bit quatro. Continue com esse padrão até que não haja mais bits de paridade para calcular.
Por exemplo:
Bit 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 revise _1, 01, 01, que contém 3, então o bit 2 é definido como 1. Bit 4: 0 1 1 _ 1 0 1 _ 0 0 1 0 revise _101, 0, que contém 2, então o bit 4 é definido como 0. Bit 8: 0 1 1 0 1 0 1 _ 0 0 1 0 revise _0010, com apenas um, defina o bit 8 como 1
A palavra codificada é, portanto, 011010110010.
Passo 4
Confirme a palavra. Se uma palavra estiver corrompida, os bits de paridade não corresponderão ao esperado. Para confirmar que uma palavra não está corrompida, basta calcular os bits de paridade com as etapas dois e três. Se algum dos bits não corresponder, registre suas posições.
Passo 5
Corrigir o bit ruim Se você encontrar bits de paridade incorretos, basta adicionar as posições dos bits. A soma é a posição do bit incorreto. Mova o valor do bit nessa posição.
Por exemplo, se os bits de paridade um e quatro estiverem incorretos, inverta o valor do quinto quinto bit para corrigir o erro.