[2026. 중등임용 정보ㆍ컴퓨터B] 패리티 비트

패리티 비트

정답

㉠~㉤의 값: \(1, 1, 0, 1, 0\), ㉥의 값: \(1\), 필요한 게이트: XOR(배타적 논리합) 게이트, 홀수 패리티 논리식: \(Y’ = \overline{Y}\).

출제 의도

짝수 패리티와 2차원 패리티(행·열·전체 패리티)의 개념을 이해하고, 주어진 데이터에서 각 방향의 패리티 비트를 계산할 수 있는지를 묻는 문제이다.

또한 패리티 비트 생성 회로가 XOR 게이트로 구성된다는 점과 짝수·홀수 패리티의 관계(보수 관계)를 이용해 논리식을 세울 수 있는지를 확인한다.

풀이 과정

짝수 패리티에서는 “데이터 비트와 패리티 비트를 모두 합쳐서 1의 개수가 짝수”가 되도록 패리티 비트를 결정한다.

주어진 5×7 데이터에서 각 열의 1의 개수를 세어 보자. (행 방향 짝수 패리티는 이미 오른쪽에 주어져 있으므로, 열 방향 패리티 비트만 구하면 된다.)

1열의 데이터 비트는 \(1, 0, 1, 1, 0\)이므로 1의 개수가 \(3\)개(홀수)이다. 짝수 개가 되도록 하려면 수직 패리티 비트가 \(1\)이어야 하므로 ㉠은 \(1\)이다.

2열의 데이터 비트는 \(1, 1, 0, 1, 0\)으로 1의 개수가 \(3\)개이므로, 마찬가지로 패리티 비트 ㉡은 \(1\)이 된다.

4열의 데이터 비트는 \(0, 0, 0, 1, 1\)로 1의 개수가 \(2\)개(이미 짝수)이므로, 수직 패리티 비트는 \(0\)이 되어야 한다. 따라서 ㉢은 \(0\)이다.

6열의 데이터 비트는 \(1, 1, 1, 0, 0\)으로 1의 개수가 \(3\)개이므로, 짝수로 만들기 위해 수직 패리티 비트 ㉣은 \(1\)이다.

7열의 데이터 비트는 \(0, 1, 1, 0, 0\)으로 1의 개수가 \(2\)개(짝수)이므로, 수직 패리티 비트 ㉤은 \(0\)이다.

이제 전체 데이터(모든 데이터 비트와 행·열 패리티 비트)를 모두 고려했을 때 1의 개수가 짝수가 되도록 전체 데이터 패리티 비트 ㉥을 정한다.

계산해 보면 전체 1의 개수가 홀수가 되므로, 이를 짝수로 만들기 위해 전체 데이터 패리티 비트는 \(1\)이 되어야 한다. 따라서 ㉥은 \(1\)이다.

짝수 패리티 생성기는 여러 비트의 XOR 연산을 이용해 구현한다. 두 비트 \(a, b\)에 대해

$$ a \oplus b = \begin{cases} 1, & a \neq b \\ 0, & a = b \end{cases} $$

이고, 여러 비트에 대해 차례로 XOR을 취하면 1의 개수가 홀수일 때 결과가 1, 짝수일 때 결과가 0이 된다. 이 성질을 이용해 짝수 패리티를 만들 수 있으므로, 한 종류의 게이트만 사용한다면 “XOR(배타적 논리합) 게이트”가 필요하다.

마지막으로 짝수 패리티 결과를 \(Y\)라고 할 때 홀수 패리티는 “짝수 패리티의 보수”가 되면 된다. 즉 전체 1의 개수를 홀수로 만들기 위해서는 \(Y\)를 한 번 반전시키면 된다.

$$ Y’ = \overline{Y} = Y \oplus 1 $$

따라서 홀수 패리티를 구하는 논리식은 \(Y’ = \overline{Y}\)이다.

<풀이가 부정확할 수 있으니 반드시 교차검증 확인 바랍니다.>