이 작은 메시지에서 어느 한 비트를 뒤집어도 원래 네 비트 값이 돌아온다.
Hamming(7,4)는 네 페이로드 비트를 일곱 비트로 바꾼다. 추가 비트는 메시지의 사본이 아니라 겹치는 패리티 검사를 만든다. 불일치 조합이 손상된 위치 하나를 알려 준다. 모든 네 비트 메시지와 단일 뒤집기를 검사한 뒤 두 비트 오류도 넣어 약속의 끝을 살폈다.
중복은 무엇이 잘못됐는지 알려 주도록 배치할 때 유용하다.
검사 위치와 주소의 관계
위치를 1~7로 매긴다. 검사 비트는 1, 2, 4에, 페이로드는 3, 5, 6, 7에 둔다. 각 검사는 이진 주소에 자기 비트가 있는 위치를 본다. 검사 1은 홀수 위치, 검사 2는 2, 3, 6, 7, 검사 4는 4, 5, 6, 7을 살핀다.
부호기는 각 집단의 1이 짝수가 되도록 검사 비트를 정한다. 짝수 패리티다. 핵심은 겹치는 집단이며 모든 위치가 서로 다른 검사 조합에 속한다. 한 비트가 변하면 단지 오류가 있다는 신호가 아니라 고유한 무늬가 남는다.

실패한 검사들이 주소를 만든다
로컬에서 값 9의 부호는 0011001이며 왼쪽부터 위치 1~7이다. 5번을 뒤집으면 검사 1과 4가 실패하고 2는 통과한다. 실패한 이름을 더하면 5다. 복호기는 그 위치를 다시 뒤집고 원래 부호와 페이로드를 복원한다.
이 결합 결과가 신드롬이다. 0은 현재 세 패리티 식이 모두 성립한다는 뜻이다. 오류가 없거나 하나라는 가정 아래에서 0이 아닌 값은 고칠 위치를 정확히 알려 준다. 검사 비트 자체의 오류도 고친다. 보호는 페이로드 네 비트뿐 아니라 일곱 위치 전체에 적용된다.

작은 약속은 전부 시험할 수 있다
네 비트 메시지는 16종이다. 깨끗한 부호 16개를 먼저 복호하고 각각 일곱 위치를 하나씩 뒤집어 단일 오류 112개를 만들었다. 모두 정확한 페이로드가 돌아왔다. 운 좋은 난수 몇 개가 아니라 이 작은 오류 모형의 모든 경우다.
보고서는 이를 깨끗한 경우 전체와 단일 오류 전체라는 두 검사로 묶는다. 비트 뒤집기마다 독립적인 과학 결과라고 불러 수를 부풀리지 않는다. 지정된 유한 범위의 구현 행동을 확인할 뿐 물리 채널의 오류 빈도나 실제 저장 장치의 동작은 측정하지 않는다.
같은 확신으로 엉뚱한 곳을 고치기
다시 9에서 시작해 1번과 2번을 함께 뒤집으면 신드롬은 3이다. 단일 오류 복호기는 3번이 손상됐다고 믿고 원래 멀쩡한 페이로드 비트를 뒤집어 8을 출력한다. 세 검사는 이를 3번 하나가 잘못된 경우와 구별할 정보를 주지 못한다.
0이 아닌 신드롬은 패리티 실패를 알리지만 오류 하나라는 가정을 증명하지 않는다. Hamming(7,4)의 유효 부호 간 최소 거리는 3으로 단일 오류를 유일하게 고칠 수 있지만 이 절차는 두 비트 손상을 오수정할 수 있다. 이 경계는 자기 수리라는 주장 아래 작은 글씨가 아니라 성공 수 옆에 있어야 한다.
추가 비트는 특정 보호를 산다
네 페이로드 비트마다 세 비트를 더 보낸다. 이 비용으로 유효 부호 사이 간격을 만들어 가정이 맞으면 가까운 손상어를 원래 이웃에 배정한다. 다른 코드와 채널 모형은 블록 크기, 검출, 수정, 계산 노력에서 다른 거래를 한다.
이 글은 그림의 작은 이진 방식만 구현한다. QR 코드, 무선 링크, 메모리 하드웨어나 실무 오류 수정 라이브러리 시험이 아니다. 손으로 살필 수 있는 핵심은 복원력을 위해 전체를 반복할 필요만 있는 것은 아니라는 점이다. 겹치는 제약을 잘 배치하면 제한된 오류가 자신의 위치를 드러낸다.
