Ο κώδικας hamming είναι ένας κώδικας μπλοκ με διόρθωση σφαλμάτων. Ο κώδικας πήρε το όνομά του από τον Richard Hamming που τον ανέπτυξε τη δεκαετία του 1950. Εκείνη την εποχή, ο Χάμινγκ εργαζόταν με μηχανές που διέθεταν ρελέ και χρησιμοποιούσαν διάτρητες κάρτες για την ανάγνωση των δεδομένων. Επειδή χρησιμοποιούνταν πολύ, οι διάτρητες κάρτες είχαν συχνά σφάλματα, τα οποία έπρεπε να διορθώνονται από τους υπαλλήλους.

Οι κώδικες Hamming χρησιμοποιούνται για την ψηφιακή επεξεργασία σήματος και τις τηλεπικοινωνίες. Οι κώδικες Hamming παράγονται σύμφωνα με ορισμένους κανόνες. Οι κώδικες Hamming χρησιμοποιούν πολλαπλά bits ισοτιμίας. Ένα bit ισοτιμίας δηλώνει αν μια ομάδα bits είναι άρτια ή περιττή. Σε έναν κώδικα Χάμινγκ, κάθε bit δεδομένων καλύπτεται από πολλά bits ισοτιμίας. Αυτό επιτρέπει την ανίχνευση σφαλμάτων και, σε ορισμένες περιπτώσεις, τη διόρθωσή τους. Ένας κώδικας hamming χρησιμοποιεί πλεονασμό. Εάν υπάρχουν τρία bits ισοτιμίας ανά κωδική λέξη, η κωδική λέξη πρέπει να έχει μήκος 7 ( 2 k - 1 {\displaystyle 2^{k}-1}{\displaystyle 2^{k}-1} , για k ως τον αριθμό των bits ισοτιμίας). Αυτό αφήνει 4 bits δεδομένων χρήστη ανά κωδική λέξη, στο παράδειγμα. Συνήθως, αυτό γράφεται ως (N,n), όπου ο πρώτος αριθμός είναι το συνολικό μήκος μιας κωδικής λέξης και ο δεύτερος είναι ο αριθμός των bits για τα δεδομένα χρήστη. Στο παραπάνω παράδειγμα είναι (7,4).

Ο συντομότερος δυνατός κώδικας Hamming είναι (3,1), 2 bit ισοτιμίας χρησιμοποιούνται για ένα bit δεδομένων. Αυτός ο κώδικας έχει δύο έγκυρες τιμές 000 και 111 - Οι κώδικες 001, 010 και 100 είναι σφάλματα μετάδοσης και θα αποδοθούν στην έγκυρη λέξη κώδικα 000. Οι άλλες δυνατότητες 011,101 και 110 θα μετατραπούν σε "111".