카테고리 없음

컴퓨터 보수 (complement)

by이종호기자 2022. 4. 11. 16:54
반응형

1. 보수란?

보수 (complement) 는 디지탈 컴퓨터에서 뺄셈 연산과 논리 계산에 사용됩니다. r진법에는 두 가지 종류의 보수가 있다. 즉 r의 보수와 (r 一 1)의 보수가 있습니다. 따라서 이진수에서는 2의 보수와 1의 보수가 가능하고, 십진수에서는 10의 보 수와 9의 보수가 가능합니다. (r - 1)의 보수 일반적으로 r진법의 n자리수의 수 N에 대하여, (r 一 1)의 보수는 (r' 一 1) N으로 정의됩니다. 십진수의 경우 r=10이고, r - 1=9이므로, N에 대한 9의 보 수는 (10" - 1) - N입니다. 십진수에서 10"은 하나의 1과 뒤이은 n개의 0으로 구 성되어 있고, 10" - 1은 n개의 9로 구성되어 있습니다. 따라서 9의 보수는 각 자리 의 숫자를 9에서 뻔 것과 같습니다. 예컨대 546700에 대한 9의 보수는 999999 546700 = 453299이고, 12389에 대한 9의 보수는 999999 一 12389 = 87610입니다.

2. 진수의 보수

이진수의 경우 r=2이고, r -1=1이므로, N에 대한 1 의 보수는 (2" 1) N입니다. 이진수에서 2"은 하나의 1과 뒤이은 n개의 0으로 구성되어 있으며, 2" -1은 n개의 1로 구성되어 있습니다. 따라서 어떤 이진수에 대한 1의 보수는 각 자리의 숫자를 1 에서 뻔 것과 같습니다. 그러나 이진 숫자를 1 에서 뺀다는 것은 1 은 0으로, 0은 1로 바꾸는 것이므로 이진수에서 1의 보수는 각 자리의 수를 1 은 0으로, 0은 1로 바꾸어 주면 구할 수 있습니다. 예를 들어 1011001 에 대한 1 의 보수는 0100110이고, 000111 에 대한 1 의 보수는 1110000입니다. 8진수와 16진수에 대한 (r - 1)의 보수도 각 자리의 숫자를 각각 7 또는 F (십진수로 15) 에서 빼주면 됩니다.

3. r의 보수

일반적으로 r진법의 n자리수의 수 N에 대한 r의 보수는 N#0일 때 ri N 이고, N=0일 때는 0으로 정의됩니다. r의 보수는 (r 一 1)의 보수에 1 을 더함으 로써 얻어집니다. 즉 r"- N=I(r 1) - N]+1이 성립합니다. 따라서 십진수 2389 에 대한 10의 보수는 7610 +1 =7611이고, 이진수 101100에 대한 2의 보수는 010011 + 1=010100입니다.

십진수에서 10"은 하나의 1과 뒤이은 n개의 0으로 구성되어 있으므로, N에 대한 10의 보수 10" -N은 맨 아랫자리의 0들을 그대로 두고 맨 처음 0이 아 닌 자리의 숫자를 10에서 뻔 다음 나머지 윗자리의 숫자들은 각각 9에서 빼주 면 됩니다.

246700에 대한 10의 보수 753300 은 처음 두 개의 0은 그대로 둔 다음, 7은 10에서 빼고 나머지 자리는 각각 9에서 빼줌으로써 얻은 것입니다. 같은 방법으로 2의 보수도 맨 아랫자리의 0들과 맨 처음의 1 을 그대로 두고, 나머지 윗자리의 숫자들을 1 은 0으로, 0은 1 로 바꾸어줌으로써 얻을 수 있습닏다. 따라서 1101100에 대한 2의 보수는 0010100이 됩니다.

이전의 정의에서 소숫점은 고려하지 않았습니다. 어떤 숫자 N이 소숫점을 가지 고 있을 경우, 일단은 소숫점을 생략한 채로 각각 n 또는 (r 一 1)의 보수를 구합니다. 다음에 이 보수의 적합한 위치에 소숫점을 다시 붙이면 됩니다. 한편 어떤 수에 대한 보수를 다시 보수화하면 원래의 수로 되돌아감을 주목할 필요가 있습니다. 즉 N에 대한 r의 보수는 you - N이고, 이것을 다시 보수화하면 r" - (r" ー N) =N이 됨을 알 수 있습니다.

4. 부호없는 숫자의 뺄샘

뺄셈 직접적이고 가장 기본적인 뺄셈 방법은 피감수의 숫자가 감수의 숫자보다 작을 때, 그 윗자리에서 을 빌어와 계산하는 것입니다. 이것은 사람이 종이와 연필을 가지고 계산을 할 때에는 가장 쉬운 방법이지만, 디지탈 하드웨어로 뺄셈 을 구현할 때에는 보수를 이용하는 것이 훨씬 효율적입니다. r진수의 부호없는 두 n자리수 사이의 뺄셈 M 一 N(N キ0)은 다음과 같이 계산됩니다.

  1. 피감수 M에 감수 N에 대한 r의 보수를 더한다.
  2. M+(r- N)=M-N+r" 2. M > N이라면, 위의 합은 end 캐리 rn 을 만들어내고, 이것을 무시하면 결과 로 M - N을 얻을 수 있다.
  3. M <N이라면, 위의 합은 end 캐리를 만들어내지 않고 그 값은 yi ー (N- M) 이다. 이것은 (N - M)에 대한 r의 보수이므로, 이것에 대한 r의 보수를 취 하고 그 앞에 뺄셈 부호를 붙이면 우리가 원하는 결과를 얻을 수 있다.
반응형