본문 바로가기
👩‍💻TIL/기술면접

[오류검출코드]패리티비트(Parity Bit)와 해밍 코드(Hamming Code)

by devuna 2020. 2. 16.
728x90

[오류 검출 코드] 패리티 비트(Parity Bit)와 해밍 코드(Hamming Code)

💡패리티 비트(Parity Bit)란?

정보전달 과정에서 오류 발생여부를 검사하기 위해 추가된 비트를 말하며,

아래의 사진처럼 전송하고자 하는 데이터의 끝에 1비트를 더하여 전송합니다.

패리티비트

 

 

패리티 비트는 홀수(odd) 패리티 비트짝수(even) 패리티 비트로 분류하는데,

- 전달하고자 하는 DATA의 1의 개수로 홀수와 짝수를 구분합니다.

- 짝수패리티의 경우 0을 붙여주고, 홀수 패리티인 경우 1을 붙여줍니다.

 

예를 들어, 전달하고자 하는 데이터가 10010101일 경우,

1이 총 4개이므로 짝수 패리티인 0이 붙게 됩니다.

 

패리티비트의 분류(홀수/짝수)

 

하지만 이러한 패리티비트로는 오류 검출만 가능할 뿐 어디가 잘못됐는지 정정할 수 없습니다.

따라서 잘못된 곳을 찾기 위해서는 해밍 코드를 활용해야 합니다.

 

💡해밍 코드(Hamming Code)란?

해밍 코드란 자기 정정 부호의 하나로 2bit의 오류 검출해서 1bit 오류를 수정할 수 있는 오류 검출 및 수정 부호를 말합니다.

 

  • 오류의 검출은 물론 스스로 수정까지 하므로 자기 정정 부호라고도 지칭
  • 전송 비트 중 1, 2, 4, 8, 16, 32, 64, … , 2ⁿ번째를 오류 검출을 위한 패리티 비트로 사용
  • 오류 검출 및 교정을 위한 잉여 비트가 많이 필요

해밍 코드를 이용하여 전체 데이터 비트의 어느 지점에서 오류가 발생했는지 검출할 수 있습니다. 패리티 비트와 해밍 코드는 분리된 개념이 아니라 함께 활용하는 것으로 전송하는 비트 중 2ⁿ 번째 자리를 패리티 비트로 사용합니다.

 

예를 들어, 전송되는 데이터의 크기가 12일 경우, 패리티 비트는 아래 색칠된 부분 2ⁿ자리에 총 4번 들어가게 됩니다.

p1 : 2⁰ =1번째 자리
p2 : =2번째 자리
p3 : =4번째 자리
p4 : =8번째 자리

 

728x90

댓글