국밥툴즈

해밍코드 계산기

해밍코드 인코딩·오류정정

해밍 코드워드
0
1
1
2
1
3
0
4
0
5
1
6
1
7

0110011

패리티 비트(2ⁿ 위치) 데이터 비트

패리티 비트는 위치 1·2·4·8…(2의 거듭제곱)에 놓이고 짝수 패리티를 사용합니다. 디코딩 시 각 패리티를 다시 계산해 얻은 신드롬 값이 곧 오류가 난 비트의 위치이며, 그 비트를 뒤집어 1비트 오류를 정정합니다.

사용법

  1. '인코딩'에서 0과 1로 된 데이터 비트를 입력하면 패리티 비트가 자동으로 붙은 해밍 코드워드가 만들어집니다.
  2. '디코딩·오류검사'로 바꿔 수신한 코드워드를 입력하면 신드롬으로 오류 위치를 찾아 줍니다.
  3. 1비트 오류가 있으면 정정된 코드워드와 추출된 데이터 비트를 함께 보여 줍니다.

자주 묻는 질문

Q. 패리티 비트는 몇 개가 필요한가요?
A. 데이터 비트 수 m에 대해 2^r ≥ m + r + 1을 만족하는 가장 작은 r개가 필요합니다. 예를 들어 데이터 4비트는 패리티 3비트가 붙어 총 7비트 해밍(7,4) 코드가 됩니다. 패리티 비트는 위치 1·2·4·8…(2의 거듭제곱) 자리에 놓입니다.
Q. 신드롬이 무엇인가요?
A. 수신한 코드워드에서 각 패리티를 다시 계산해 얻은 값입니다. 신드롬이 0이면 오류가 없고, 0이 아니면 그 값 자체가 오류가 발생한 비트의 위치(1부터 시작)를 가리킵니다. 해당 비트를 뒤집으면 1비트 오류가 정정됩니다.
Q. 짝수 패리티와 홀수 패리티 중 무엇을 쓰나요?
A. 이 계산기는 짝수 패리티(even parity)를 사용합니다. 각 패리티 비트가 검사하는 비트들의 1의 개수가 짝수가 되도록 패리티 값을 정합니다. 정보처리기사·교재에서 가장 널리 쓰는 방식입니다.
Q. 2비트 이상 오류도 정정되나요?
A. 기본 해밍코드는 1비트 오류 정정(SEC)만 보장합니다. 2비트 오류는 잘못 정정될 수 있어, 실무에서는 전체 패리티를 1개 더한 SECDED로 2비트 오류를 '검출'만 합니다.

이 도구에 틀린 정보가 있나요? 알려주세요.