짝수(even, 우수)방식
실제 송신하고자 하는 데이터의 각 비트의 값 중 1의 개수가 짝수가 되도록 패리티 비트를 정한다.
데이터 비트에서 1의 개수가 홀수이면 패리티 비트를 1로, 그렇지 않으면 0으로 정한다.
ex) 1001 0101 , 0010 110
1001 0101 | 0
: 1의 개수 4 → 짝수니까 0
0010 110 | 1
: 1의 개수 3 → 홀수니까 1
홀수(odd, 기수)방식
실제 송신하고자 하는 데이터의 각 비트의 값 중 1의 개수가 홀수가 되도록 패리티 비트를 정한다.
데이터 비트에서 1의 개수가 짝수이면 패리티 비트를 0으로, 그렇지 않으면 1로 정한다
ex) 1001 0101, 0010 110
1001 0101 | 1
: 1의 개수 4 → 짝수니까 1
0010 110 | 0
: 1의 개수 3 → 홀수니까 0
≥ 를 만족하는 최소 p 구하기
p: 추가할 패리티 비트 개수 | m: 원본 데이터의 비트 개수
p = 1, 2 ≥ 6 (X)
p = 2, 4 ≥ 7 (X)
p = 3, 8 ≥ 8 (O) → p의 최소
p =4, 16 ≥ 9 (O)
패리티 비트 추가: (k= n-1, n≥1)
Pn은 자기 범위에 대해 짝수/홀수 패리티를 가진다.
P1, P2, P3 존재 → 1, 2, 4번지 값에 존재: DDDP DPP: 100P 1PP
P1(1, 3, 5, 7): P1(P, 1, 0, 1) -XOR→ 1 X 0 X 1 = 0
P2(2, 3, 6, 7): P2(P, 1, 0, 0) -XOR→ 1 X 0 X 1 = 0
P3(4, 5, 6, 7): P3(P, 1, 0, 0) -XOR→ 1 X 0 X 0 = 1
P1, P2, P3 = 0, 0, 1
P1에서 1, 3, 5, 7번지를 확인하는 이유
→ 2진수 중에서 그 자리의 수가 1인 곳을 의미한다
10진수 | 2진수 | P1 | P2 | P3 |
---|---|---|---|---|
1 | 0001 | 1 | 0 | 0 |
2 | 0010 | 0 | 1 | 0 |
3 | 0011 | 1 | 1 | 0 |
4 | 0100 | 0 | 0 | 1 |
5 | 0101 | 1 | 0 | 1 |
6 | 0110 | 0 | 1 | 1 |
7 | 01111 | 1 | 1 | 1 |
8 | 1000 | 0 | 0 | 0 |
9 | 1001 | 1 | 0 | 0 |
10 | 1010 | 0 | 0 | 0 |
검사 및 수정
P1: 1011 100 → P1 = 1 | E = P’3 P’2 P’1 = P’3 P’2 1
P2: 1011 100 → P2 = 0 | E = P’3 P’2 P’1 = P’3 0 1
P3: 1011 100 → P3 = 1 | E = P’3 P’2 P’1 = 1 0 1
2진수 101을 10진수 5로 바꾼다, 5번째 자리의 값이 오류임을 알 수 있다.