%3C/text%3E%3C/svg%3E">
💻
💻 IT·개발

해밍 코드 계산기 (데이터 비트 부호화·1비트 오류 찾기와 정정)

입력하면 바로 계산됩니다.

입력값

해밍 코드 계산기 쉽게 이해하기 — 개념과 원리

해밍 코드는 데이터에 검사 비트 몇 개를 더해, 뒤바뀐 비트 하나를 찾아 고칠 수 있게 합니다. 이 계산기는 데이터 비트를 해밍 부호어로 부호화하거나, 받은 부호어를 검사해 신드롬을 구하고 1비트 오류를 고칩니다. 컴퓨터 과학, 디지털 통신, 메모리 설계의 대표적인 주제입니다.

해밍 코드 배치1011의 해밍(7,4) 부호화10p121p231d40p450d61d71dp1 = d3 ⊕ d5 ⊕ d7 = 1 ⊕ 0 ⊕ 1 = 0p2 = d3 ⊕ d6 ⊕ d7 = 1 ⊕ 1 ⊕ 1 = 1p4 = d5 ⊕ d6 ⊕ d7 = 0 ⊕ 1 ⊕ 1 = 0부호어 0110 011패리티 비트는 2의 거듭제곱 위치 1, 2, 4
1, 2, 4번 자리의 패리티 비트 3개가 데이터 비트 4개를 지킵니다.

계산 방법

위치는 1부터 번호를 매깁니다. 1, 2, 4, 8 … 위치에는 검사 비트, 나머지에는 데이터 비트를 차례로 넣습니다.

검사 비트 p는 이진 번호에 p가 포함된 모든 위치를 맡으며, 그 묶음의 1 개수가 짝수가 되도록 정합니다.

검사 비트 수 k: 데이터 m비트에 대해 2^k ≥ m + k + 1을 만족하는 가장 작은 k

검사: 1인 모든 위치 번호를 XOR한 값이 신드롬이며, 0이면 오류 없음, 아니면 틀린 비트의 위치입니다.

원리

각 위치에는 이진 번호가 있고, 각 검사 비트는 이진 번호의 한 자리를 공유하는 위치들을 지켜봅니다. 비트 하나가 뒤집히면 그 위치를 맡은 검사들만 정확히 실패합니다. 실패한 검사를 이진수 자리로 읽으면 위치 번호가 되므로 신드롬이 오류를 바로 가리킵니다. 검사 비트가 k개면 신드롬은 2^k가지라서 m + k개 위치 중 하나 또는 '오류 없음'을 모두 나타낼 수 있습니다. 기본 해밍 코드는 오류 하나를 고치며, 오류가 둘이면 잘못 고칩니다.

예제 풀이

기본값인 데이터 1011 부호화로 계산합니다.

  1. 데이터 m = 4, 2³ = 8 ≥ 4 + 3 + 1이므로 k = 3, 부호는 (7, 4)입니다.
  2. 데이터를 위치 3, 5, 6, 7에 1, 0, 1, 1로 넣습니다.
  3. p1(3, 5, 7) = 1 ⊕ 0 ⊕ 1 = 0, p2(3, 6, 7) = 1 ⊕ 1 ⊕ 1 = 1, p4(5, 6, 7) = 0 ⊕ 1 ⊕ 1 = 0입니다.
  4. 부호어(위치 1~7) = 0110 011, 데이터 비트 = 1011입니다.
  5. 부호화 모드에서는 검사를 하지 않으므로 오류 위치와 신드롬은 —입니다.

결과 해석

부호어를 보내거나 저장하십시오. 검사할 때 신드롬이 0이면 1비트 오류가 없다는 뜻이고, 부호어 길이 안의 0이 아닌 값이면 그 비트를 되돌리면 됩니다. 실제 메모리 시스템은 전체 패리티 비트 하나를 더해(SECDED) 오류 둘을 잘못 고치는 대신 검출하는 경우가 많습니다.

흔한 실수

주의: 기본 해밍 코드는 부호어당 오류 하나만 고칩니다. 연속 오류가 생기는 시스템은 더 강한 부호와 인터리빙을 씁니다.

자주 묻는 질문

(7, 4)는 무슨 뜻인가요?

전체 7비트에 데이터 4비트, 검사 비트 3비트라는 뜻입니다.

오류 위치는 어떻게 찾나요?

1인 비트의 위치 번호를 모두 XOR하면 신드롬, 즉 오류 위치가 나옵니다.

해밍 코드는 어디에 쓰이나요?

메모리 오류 정정과 교육에 쓰이며, 더 발전된 부호의 기초가 되었습니다.

출처: R. W. Hamming, "Error Detecting and Error Correcting Codes", The Bell System Technical Journal 29(2): 147–160, 1950

2026년 11월 8일 확인. R. W. Hamming, “Error Detecting and Error Correcting Codes”, The Bell System Technical Journal 29(2):147–160, 1950년 4월, §3: 검사 자리 1, 2, 4, 8 …, 짝수 패리티 검사, 2^k ≥ m + k + 1, 검사 번호(checking number)가 단일 오류의 위치를 나타냄 (예: 0111000 → 5번째 자리).

💻 IT·개발 계산기 전체 →🏠 홍라이프 계산기 홈 →