해밍코드 계산기
해밍코드 인코딩·오류정정
해밍 코드워드
0
11
21
30
40
51
61
70110011
패리티 비트(2ⁿ 위치) 데이터 비트
패리티 비트는 위치 1·2·4·8…(2의 거듭제곱)에 놓이고 짝수 패리티를 사용합니다. 디코딩 시 각 패리티를 다시 계산해 얻은 신드롬 값이 곧 오류가 난 비트의 위치이며, 그 비트를 뒤집어 1비트 오류를 정정합니다.
사용법
- '인코딩'에서 0과 1로 된 데이터 비트를 입력하면 패리티 비트가 자동으로 붙은 해밍 코드워드가 만들어집니다.
- '디코딩·오류검사'로 바꿔 수신한 코드워드를 입력하면 신드롬으로 오류 위치를 찾아 줍니다.
- 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비트 오류를 '검출'만 합니다.
이 도구에 틀린 정보가 있나요? 알려주세요.