보수 (수학)

개요[편집 | 원본 편집]

보수(補數)는 보충을 해주는 수라는 의미를 가진 한자어로 합해서 특정 숫자를 채우게 하는데 필요한 수를 말한다. 예를 들면 4에 대한 10의 보수는 6이라고 말할 수 있다.

보수를 이용하면 특정 계산을 용이하게 할 수 있는데, 예를 들면 컴퓨터에서 직접 뺄셈을 하는 감산기를 별도로 만들지 않고도 보수를 만든 뒤 가산기를 활용하는 방식으로 뺄셈을 수행할 수 있다.

보수를 이용한 계산법[편집 | 원본 편집]

주판을 이용한 덧셈, 뺄셈을 할 때 5의 보수 혹은 10의 보수의 개념이 사용된다. 예를 들면 4+2를 계산할 때 +2를 4에 대한 5의 보수 1을 먼저 더한 뒤 1을 추가로 더했다고 이해할 수 있다. 즉, 처음의 수 4에 5의 보수 1을 더해서 5를 만든 뒤 나머지 1을 더해서 6이 된다고 간주할 수 있다.

이는 뺄셈일 때도 마찬가지인데, 7-3이라는 연산에서도 7=5+2로 나눌 수 있고, 2-3은 결과가 음수가 나오기에 우선 5에 대한 3의 보수 2를 구한 뒤 남은 숫자 2를 더한 값 4를 결과로 유도할 수 있다.

보수를 이용한 음의 정수 표현[편집 | 원본 편집]

제한된 자릿수의 정수만을 사용할 때는 음수를 표현할 때 음의 부호 표현을 사용하는 대신 보수를 이용한 표현을 사용할 수 있다. 예를 들면 십진법으로 네 자리까지만 숫자를 표현하고자 할 때 -3 대신 3의 9999에 대한 보수 9996으로 대신 표현하거나 10000에 대한 보수 9997로 표현이 가능하다. 일반적으로 n진법으로 표시된 정수를 기준으로 n-1의 보수 표현법과 n의 보수 표현법이 존재한다.

특히 이진수를 사용하는 컴퓨터에서는 단지 0과 1 두 개의 숫자만을 사용하기에 음의 정수를 표현할 때 맨 앞의 숫자를 1로 표현하는 방법을 사용한다. 숫자를 표현하는 자릿수가 n개인 경우 모두 2n개의 숫자를 표현할 수 있는데, 보수법을 사용해 음수를 표현하는 경우 1로 시작하는 절반의 숫자는 음수를 의미하게 된다.

이진법의 경우 음수를 표현하는 방법에는 1의 보수법과 2의 보수법이 있는데, 자릿수가 n개인 경우에 1의 보수법은 숫자 -m을 m의 2n-1(=[math]\displaystyle{ {11\cdots1}_{(2)} }[/math])에 대한 보수로 표현하는 방식이고, 2의 보수법은 숫자 -m을 m의 2n(=[math]\displaystyle{ {100\cdots0}_{(2)} }[/math])에 대한 보수로 표현하는 방식이다.

구체적으로 예를 들면 자릿수가 8개(8비트) 일 경우 음의 정수 -6을 아래와 같이 1의 보수 방식과 2의 보수 방식으로 표현할 수 있다.

방식 숫자 표현 결과
- 6 0 0 0 0 0 1 1 0
1의 보수 -6 (=249) 1 1 1 1 1 0 0 1
2의 보수 -6 (=250) 1 1 1 1 1 0 1 0

간단히 말하면 1의 보수 방식은 0과 1을 단순히 치환하는 방식으로 유도 가능하고, 2의 보수 방식은 일의 자리서부터 가장 자릿수가 작은 1까지만 숫자를 유지하고, 그 위의 숫자들은 1과 0을 바꾸는 방식으로 서술할 수 있다.

보수를 이용한 뺄셈[편집 | 원본 편집]

13-6=7이라는 식에서 13-6 대신 13+(-6)으로 표현이 가능하다. 보수를 표현하는 방식으로 음수를 표현할 경우 감산기를 별도로 사용하지 않아도 가산기만으로도 계산이 가능하다. 단 1의 보수의 경우 앞자리 1에 의해 받아올림 수가 1이 되는 경우 결과값에 1을 더해주어야 한다.

또한 보수를 이용한 음의 정수 표현 방식에서는 양수만 표현할 때에 비해 절반만 표현이 가능하다. 예를 들어 n개 자리수의 경우 양수는 2n-1-1 까지만 숫자표현이 가능하므로 합이 2n-1 이상인 경우 맨 앞자리가 1로 표현되어 음수로 표현되는 문제가 발생한다.

1의 보수 방식[편집 | 원본 편집]

연산 숫자 받아올림 수 표현 결과
-5 0 1 1 1 1 1 0 1 0
-6 0 1 1 1 1 1 0 0 1
+ -11 1 1 1 1 1 0 0 1 1
받아올림 -11 1 1 1 1 0 1 0 0

2의 보수 방식[편집 | 원본 편집]

연산 숫자 받아올림 수 표현 결과
-5 0 1 1 1 1 1 0 1 1
-6 0 1 1 1 1 1 0 1 0
+ -11 1 1 1 1 1 0 1 0 1
결과 -11 1 1 1 1 0 1 0 1


각주