Computer Science/컴퓨터 구조

패리티 비트 & 해밍 코드

녕이 2022. 2. 9. 11:30
728x90

 

 

패리티 비트


: 정보 전달 과정에서 오류가 생겼는지 검사하기 위해 추가하는 비트. 전송하고자 하는 데이터의 각 문자에 1비트를 더하여 전송한다. 

짝수 패리티와 홀수 패리티가 있고 전체 비트에서 총 1의 개수가 (짝수, 홀수)에 맞도록 비트를 정한다.

 

 

7비트 데이터 짝수 패리티 홀수 패리티
0000000(0) 00000000 10000000
1010001(3) 11010001 01010001
1101001(4) 01101001 11101001
1111111(7) 11111111 01111111

 

짝수 패리티일 때 7비트 데이터의 1 개수가 홀수라면 짝수로 맞추기 위해 맨 앞에 1을 더한다 / 짝수라면 맨 앞에 0을 더한다

홀수 패리티일 때 7비트 데이터가 1 개수가 짝수라면 홀수로 맞추기 위해 맨 앞에 1을 더한다 / 홀수라면 맨 앞에 0을 더한다

 

 

 

 

해밍 코드


: 데이터 전송 시 1비트의 에러를 정정할 수 있는 자기 오류 정정 코드. 패리티 비트를 보고 1비트에 대한 오류 정정할 곳을 찾아 수정.

 

2의 n승번째 자리인 1, 2, 4번째 자릿수가 패리티 비트.

이 숫자로부터 시작하는 3개의 패리티 비트가 짝수인지 홀수인지 기준으로 판별한다. 

 

3개의 패리티 피트 생성 규칙은 아래의 표를 따르면 된다.

위키피디아 (en.wikipedia.org)

 

 

짝수 패리티의 해밍 코드가 01101001일 때 오류 수정을 해보자.

0110100 에서 1, 2, 5번째 자릿수의 숫자로부터 시작하는 3개의 패리티 비트가 짝수인지 홀수인지

p1: 1, 3, 5, 7번째 비트 - 0110 짝수이므로 '0'
p2: 2, 3, 6, 7번째 비트 - 1100 짝수이므로 '0'
p4: 4, 5, 6, 7번째 비트 - 0100 홀수이므로 '1'

역순으로 패리티비트 '100' 
10진법으로 바꾸면 '4'이므로 4번째 비트 수정

답: 0111100

 

 

 

 

 

💡공부 및 기록용 블로그이므로 오류가 있을 수 있습니다.💡

만약 문제에 오류나 오타가 있다면 댓글로 알려주세요
언제나 환영합니다. 감사합니다. 화이팅!

 

 

 

728x90