패리티 비트
: 정보 전달 과정에서 오류가 생겼는 지 검사하기 위해 추가하는 비트
전송하고자 하는 데이터의 각 문자에 1비트를 더하여 전송
- 종류 : 짝수, 홀수 : 전체 비트에서 (짝수, 홀수)에 맞도록 비트를 정하는 것
- ex) 짝수 패리티일 때, 7비트 데이터가 1010001 → 1이 총 3개이므로 짝수로 맞춰주기 위해 1을 더해야 함 → 11010001 (맨 앞이 패리티 비트)
해밍 코드
: 데이터 전송 시 1비트의 에러를 정정할 수 있는 자기 오류 정정 코드
패리티 비트를 보고 1비트에 대한 오류를 정정할 곳을 찾아 수정할 수 있다
→ 패리티 비트는 오류를 검출만 하기 때문에 해밍 코드를 활용해 수정까지 가능
방법
- ex) 짝수 패리티의 해밍 코드가 0011011일 때, 오류가 수정된 코드는?
- 2^p - 1 ≥ m + p (m : 데이터 비트 개수, p는 수식을 만족하는 가장 작은 수)
- 총 비트 수 = 7 → 2^n -1 ≥ 7 → 2^n ≥ 8 → n ≥ 3
- 3을 선택 → 2^3 - 1 ≥ m +3 → m = 4
- 실제 데이터 : m = 4비트, 패리티 비트 : 7-4 = 3비트
- 패리티 비트는 앞에서부터 2^n으로 자리 차지
- 패리티 비트 : 1, 2, 4 / 실제 데이터 : 3, 5, 6, 7 (1011) = 11
- 3비트(패리티 비트)로 셀 수 있는 숫자는 7까지
- P1(1번째) = 1인 경우 ⇒ 1010101
- P2(2번째) = 1인 경우 ⇒ 0110011
- p3(4번째) = 1인 경우 ⇒ 0001111
-
1, 3, 5, 7 번째 비트 확인 : 0101로 짝수이므로 0
-
2, 3, 6, 7 번째 비트 확인 : 0111로 홀수이므로 1
-
4, 5, 6, 7 번째 비트 확인 : 1011로 홀수이므로 1
→ 역순으로 패리티 비트 110을 도출
→ 10진법으로 바꾸면 6으로 6번째 비트를 수정하면 된다
→ 0011001