컴퓨터에서는 양수과 음수(+와-)를 구별하기 위해 보수를 사용한다.
Diminished Radix Complement
숫자 N이 r진수이고 n개의 자릿수를 가지고 있다면
(r-1)의 보수 = (r^n - 1) - N
로 정의할 수 있다.
10진수에서, 9의 보수로 나타내는 546700은
546700 = 999999 - 546700 = 453299
2진수에서, 1의 보수로 나타내는 1011000은
1111111 - 1011000 = 0100111
Radix Complement
r의 보수 = r^n - N
r의 보수는 r-1의 보수에서 1을 더해주면 된다.
10진수에서, 10의 보수로 나타내는 546700은
546700 = 999999 - 546700 + 1 = 453300
2진수에서, 2의 보수로 나타내는 1011000은
1111111 - 1011000 + 1 = 0101000
1011100의 2의 보수는 1111111 - 1011100 + 1 = 0100011 + 1 = 0100100이다.
1011100의 LSB부터 시작해서 첫번째 1이 나올때까지는 유지하다가 1이 나온 다음부터 반전을 시켜주면 된다. 1011/100 -> 0100/100
r진법 n자리 숫자 M과 N이 있을때, M-N을 하면
10진수 체계에서, 72532-3250을 구하라
M>=N이므로 72532+96750 - 10^5 = 169282 - 100000 = 69282
10진수 체계에서, 03250-72532을 구하라
M<N이므로 03250 + 27467 = 30717
2진수 체계에서, 1010100 - 1000011을 구하라
M>=N이므로 1010100 + 0111101 - 10000000 = 10010001 - 10000000 = 0010001
2진수 체계에서, 1000011 - 1010100을 구하라
M<N이므로 1000011 + 0101100 = 1101111
그러므로 이진 시스템에서 뺄셈은 실제로 빼는 것이 아니라, 보수를 구해서 더해주는 것을 의미한다.