Załóżmy, że kolejne błędy przybliżająjeden wyraz do drugiego (znów najgorszy przypadek). Poprawianie kodu polega na przydzielaniu wyrazowi niedozwolonemu (zabronionemu) wyrazu poprawnego w oparciu o zasadę najmniejszej możliwej ilości przekłamań fzasada ufności1). Jeśli więc przyjdzie jeden lub dwa błędy, to nadal będziemy bliżej wyrazu właściwego niż jakiegokolwiek innego. Ale gdy przyjdątrzy błędy to wyraz przekłamany S3 będzie już bliższy S2, bo d(Si, S3) = 3 a d(S3, S2) = 2. Czyli:

Podamy teraz przykład jednego z bardziej bezpiecznych kodów, tzw. kodu Graya:

dziesiętnie

kod

dziesiętnie

kod

0

0000

5

0111

1

0001

6

0101

2

0011

7

0100

3

0010

8

1100

4

0110

9

1000

Jest to kod o odległości Hamminga 1, czyli raczej podatny na zakłócenia, ale tak chytrze pomyślany, że każdy wyraz kodowy różni się od drugiego dokładnie w 1 bicie.

Rozpatrzmy teraz zakodowanie linijki w kodzie binarnym i Graya:

kod Graya

Rozpatrzmy położenie głowicy odczytu, która stanęła pomiędzy 3 a 4. W zależności od położenia głowicy i czułości przetwornika możliwy odczyt to od 0 do 7 (zarejestrowano 0 jedynek aż po 3 jedynki, na różnych pozycjach). W takim samym położeniu dla kodu Graya możliwe jest odczytanie jednej jedynki na 3-ej pozycji (3) lub 2 na (2-ej i 3-ej) czyli 4. Zatem odczyt 3 lub 4 (tak, jak przy odczycie analogowym).