Zitiert nach
Christoph Pöppe
Spektrum der Wissenschaft September 2001, Seite 100,
Der Hamming Code stammt aus den heroischen Frühzeiten der Informationstechnik, als man die Bits, jene kleinsten Informationseinheiten, die entweder eins oder null sind, noch einzeln über die Leitung rattern hören konnte und stets damit rechnen musste, dass ein Störsignal eine Eins in eine Null verwandelte oder umgekehrt. Heute sind die Übertragungsraten zwar um einige Zehnerpotenzen höher, aber Fehler kommen immer noch vor; deswegen werden der zu übertragenden Information Prüfbits beigemischt, Zusatzzeichen, an denen der Empfänger erkennen kann, ob unterwegs ein Bit umgekippt ist.
Noch bessere Verfahren erkennen nicht nur, dass ein Bit verfälscht worden ist, sondern auch, welches es war; sie können einen Fehler also nicht nur bemerken, sondern auch korrigieren. Diese Leistung erfordert einen Preis: Die Nachricht wird geschwätzig ("redundant"). Anders ausgedrückt: In eine Bitfolge gegebener Länge passt weniger Information, als eigentlich möglich wäre.
Eine Folge von n Bits kann im Prinzip 2^n verschiedene Nachrichten übermitteln, denn so viele verschiedene Möglichkeiten gibt es, n Nullen oder Einsen hintereinander zu schreiben. Wenn man aber Fehler erkennen oder gar korrigieren will, kann nicht jede dieser Bitfolgen eine Nachricht sein.
Erklären wir eine gewisse Folge von Bits zum Codewort, das heißt zu einer bedeutungstragenden Nachricht. Dann ist jede Bitfolge, die sich von dieser nur an einer Stelle unterscheidet, als Codewort nicht mehr brauchbar, denn sie könnte ja, für den Empfänger unentdeckbar, durch Verfälschung dieses Bits aus dem ursprünglichen Codewort hervorgegangen sein. Nennen wir sie ein Fehlerwort zu diesem Codewort. Wenn man Fehler auch korrigieren will, dürfen zwei Codewörter kein Fehlerwort gemeinsam haben. Nur dann kann nämlich der Empfänger ein Fehlerwort nicht nur als solches erkennen, sondern daraus auch das – dann eindeutige – richtige Codewort wiederherstellen.
Zu jedem Codewort gibt es n Fehlerwörter, eins für jede Bitposition; die Fehlerwörter sind also n-fach in der Überzahl. Von dem Vorrat der insgesamt 2^n verschiedenen Bitfolgen der Länge n verbraucht jedes Codewort n+1 Stück, eins für sich selbst und n Stück für seine Fehlerwörter. Wenn n+1 selbst eine Zweierpotenz ist, können die Codewörter samt ihrem "Hofstaat" an Fehlerwörtern den Vorrat der 2^n Wörter restlos aufbrauchen; daher kommt es, dass die Fälle n=2^k–1 besonders günstig auskommen.
Bei dem Fehler korrigierenden Code, den Richard W. Hamming (1915–1998), einer der Computerpioniere, 1948 erfunden hat, erkennt – und korrigiert – der Empfänger einzelne umgeklappte Bits durch eine einfache Rechnung, die zur Not im Kopf durchführbar ist.