Ein Hamming-Code ist ein fehlerkorrigierender Blockcode. Der Code ist nach Richard Hamming benannt, der ihn in den 1950er Jahren entwickelt hat. Zu dieser Zeit arbeitete Hamming mit Maschinen, die über Relais verfügten und Lochkarten zum Lesen der Daten verwendeten. Da die Lochkarten stark genutzt wurden, wiesen die Lochkarten oft Fehler auf, die von den Mitarbeitern korrigiert werden mussten.

Hamming-Codes werden für die digitale Signalverarbeitung und Telekommunikation verwendet. Hamming-Codes werden nach bestimmten Regeln generiert. Hamming-Codes verwenden mehrere Paritätsbits. Ein Paritätsbit sagt aus, ob eine Gruppe von Bits gerade oder ungerade ist. In einem Hamming-Code wird jedes Datenbit durch mehrere Paritätsbits abgedeckt. Dies ermöglicht es, Fehler zu erkennen und in bestimmten Fällen auch zu korrigieren. Ein Hamming-Code verwendet Redundanz. Wenn es drei Paritätsbits pro Codewort gibt, muss das Codewort eine Länge von 7 haben ( 2 k - 1 {\Darstellungsstil 2^{k}-1}{\displaystyle 2^{k}-1} , denn k ist die Anzahl der Paritätsbits). Somit bleiben im Beispiel 4 Bits Benutzerdaten pro Codewort übrig. Normalerweise wird dies als (N,n) geschrieben, wobei die erste Zahl die Gesamtlänge eines Codeworts und die zweite die Anzahl der Bits für Benutzerdaten ist. Das obige Beispiel lautet (7,4).

Der kürzest mögliche Hamming-Code ist (3,1), für ein Datenbit werden 2 Paritätsbits verwendet. Dieser Code hat zwei gültige Werte 000 und 111 - Die Codes 001, 010 und 100 sind Übertragungsfehler und werden dem gültigen Codewort 000 zugeordnet. Die anderen Möglichkeiten 011,101 und 110 werden in '111' geändert.