elesis's haunt

[컴퓨터 구조] 보수(complement) 본문

컴퓨터 구조 (CS)

[컴퓨터 구조] 보수(complement)

elesis 2022. 3. 29. 03:14

보수

컴퓨터는 덧셈만 할줄 아는 기계입니다.

그래서 뺄샘을 덧셈으로 바꿔서 계산할때 보수를 사용합니다. 

  10 - 3 같은 경우 10 + (-3) 로 계산합니다.

n진법에는 n의 보수와 (n-1)의 보수가 있습니다.

 

10진법은 10의 보수와 9의 보수가 있고 2진법은 2의 보수와 1의 보수가 있습니다.


10의 보수와 9의 보수

9의 보수: 어떤 숫자 N이 주어지면 9 - (N의 각 자리숫자) 한 것과 동일합니다.

숫자 529의 9의 보수) 999 - 529 = 470

 

10의 보수: 어떤 숫자 N이 주어지면 N의 제일 큰 자리수를 올림한 수에서 N을 뺀 것입니다.

숫자 529의 10의 보수) 1000 - 529 = 471

 

n의 보수는 (n-1)의 보수에 +1 한 값 입니다.

 

따라서 10의 보수는 9의 보수에 1을 더한 것과 같습니다.

 

예) 다음 뺄셈 600 - 529 = 71을 보수를 사용해 덧셈으로 풀어봅시다.

더보기

1. 600 + (-529) = 71

2. -529의 10의 보수는 1000 - 529 = 471이다.

3. 600 + 471 = 1071이다.

4. 천의 자리는 올림수 입니다. 뺄셈에서 올림수는 나오지 않으니 버립니다.

5. 071 = 71


2의 보수와 1의 보수

1의 보수: 주어진 이진수 N의 각자리 수를 1로 만든 값에서 N을 뺀 것입니다.

                : 1의 보수는 N값의 1과 0을 뒤집어 놓은 것입니다.

이진수 1011001의 1의 보수)

 1111111

-1011001

-----------

 0100110

 

2의 보수: 주어진 이진수 N의 제일 큰 자리수를 올림한 수에서 N을 뺀 것입니다.

                : 2의 보수는 1의 보수에 1을 더해준 것과 같습니다.

이진수 1011001의 2의 보수)

 1111112  (원래 2가 올 수 없습니다. 10000000이 맞는 값이지만 연산을 위해 이렇게 표기합니다.)

-1011001

----------

  100111

1의보수(100110)에 1을 더한 값(100111)과 동일하다. 


보수의 이런 계산이 가능한 이유

114 - 89 = 25 의 양변에 100을 더합니다.
114 + ( 100-89 ) = 100 + 25
114 + 11 = 125
10의 보수(11)를 구하는 셈이 됩니다.
양변에 더해준 값 100을 다시 빼주면 25라는 값이 나옵니다.

 

출처: https://god-gil.tistory.com/40 해당글을 요약했습니다.

Comments