|
덧셈 기호를 쓸 뿐이지 보통의 덧셈과는 다른 것이니까, 1+1이 2, 즉, 2진수 10이 아니라고 해서 이상하게 여길 필요는 없다. 이런 덧셈은 홀수, 짝수를 생각하면 자연스럽게 등장한다. 어떤 정수가 짝수라는 것은 2로 나눈 나머지가 0이고, 어떤 정수가 홀수라는 것은 2로 나눈 나머지가 1이다. 정수가 짝수냐 홀수냐에 따라 0과 1을 대응한 것을 그 정수의 ‘짝홀값’(패리티, parity)이라 부른다. 예를 들어 1+1은 홀수+홀수로 해석하는데, 결과는 짝수이므로 0을 대응하는 것으로 이해하자는 것이다. 앞으로 이 글에서의 2진수의 덧셈은 모두 배타적 논리합을 가리키겠다.
한편 2진수 자료에서 각 자리수의 배타적 논리합을 구한 것을 ‘검사합’(체크섬, checksum)이라 부른다. 물론 이 값은 자료 내에 1이 홀수 개 있는지, 짝수 개 있는지로 결정할 수 있다. 아무튼 2진수 자료에 검사합을 덧붙인 부호를 생각하면 오류를 검출할 수 있다. 예를 들어 1001의 검사합은 1+0+0+1=0이므로, 맨 끝에 0을 덧붙여 10010이라는 자료로 변환하자는 것이다. 만일 이런 식으로 변환한 자료가 10011이라면, 검사합 1+0+0+1=0이 오류 검출 부호 1과 다르므로 오류임을 금방 알 수 있을 것이다. 이렇게 검사합을 이용하여 오류를 검출하는 방법을 ‘짝홀 검사법’(패리티 검사, parity check)이라고 부르는데, 동일한 자료를 두 번 보낸 것과 비교하면 대단히 효율적인 오류 검사법이다. |