Um código de hamming é um código de bloco que corrige erros. O código tem o nome de Richard Hamming, que o desenvolveu nos anos 50. Naquela época, Hamming trabalhava com máquinas que tinham relés e usava cartões perfurados para ler os dados. Como eram muito utilizados, os cartões perfurados freqüentemente tinham erros, que precisavam ser corrigidos pelos funcionários.

Os códigos Hamming são usados para processamento de sinais digitais e telecomunicações. Os códigos de Hamming são gerados de acordo com certas regras. Os códigos de Hamming usam múltiplos bits de paridade. Um bit de paridade diz se um grupo de bits é par ou ímpar. Em um código de Hamming, cada bit de dados é coberto por vários bits de paridade. Isto permite detectar erros e, em certos casos, corrigi-los também. Um código de martelamento utiliza redundância. Se houver três bits de paridade por palavra de código, a palavra de código deve ter um comprimento de 7 ( 2 k - 1 ^{k}-1}{\displaystyle 2^{k}-1} , para k como o número de bits de paridade). Isto deixa 4 bits de dados de usuário por palavra-código, no exemplo. Normalmente, isto é escrito como (N,n), onde o primeiro número é o comprimento total de uma palavra de código, e o segundo é o número de bits para os dados do usuário. O exemplo acima é (7,4).

O código de Hamming mais curto possível é (3,1), 2 bits de paridade são usados para um bit de dados. Este código tem dois valores válidos 000 e 111 - Os códigos 001, 010 e 100 são erros de transmissão, e serão atribuídos à palavra de código válida 000. As outras possibilidades 011.101 e 110 serão alteradas para '111.