1. 개요
- 앞선 포스팅에서 1의 보수와 2의보수에 대해서 알아보았다.
- 컴퓨터가 음수의 계산을 뺄셈이 아닌 덧셈으로 하기 위해서 보수를 사용한다는 것을 알았다.
- 그 과정에서 보수를 구하는 방법이 두가지(1의 보수, 2의 보수)가 있다.
- 왜 두개가 있는걸까? 보수를 구하는 방법은 하나만 있어도 충분한 거 아닐까? 차이점이 뭘까?
- 이러한 궁금증이 들었다. 이 글을 읽는 당신도 그러하다면, 같이 알아보자.
2. 2의 보수를 사용하는 이유
- 결론부터 알아보자.
- 2의 보수를 사용하는 이유는 동일한 저장공간을 이용하여 1의 보수보다 더 많은 수의 표현을 할 수 있기 때문이다.
- 그렇다면 왜 그런지 차근차근 알아보자.
a) 양수는 보수가 없다.
- 위의 표를 살펴보자.
- 10진수를 이진법으로 표현하였고, 1의 보수와 2의 보수를 작성한 표다.
- 0부터 7까지는 1과 2의 보수가 이진법으로 표현된 수와 동일한 것을 알 수 있다.
- 즉, 양수는 보수를 취하지 않는다.
b) 음수를 위한 보수
- 그러면 보수를 왜 사용하는 것일까?
- 이전의 포스팅에서 배운 내용이지만, 음수를 양수로서 표현하기 위해서 사용하는 것이다.
- 표에서도 확인할 수 있듯이, 양수와는 다르게 음수는 보수를 취한다.
c) +0과 -0을 구분해야할까?
- 위의 표를 보면 +0과 -0이 존재한다.
- 두가지 0을 사용하는 이유는 1의 보수로서 표현을 하기 위함이다.
- 여기서 2의 보수를 사용하는 이유가 나온다.
- 위의 표를 살펴보면 2의 보수의 경우 +0과 -0의 값이 0000으로 동일한 것을 확인 할 수 있다.
- 0을 한가지로 표현을 할 수 있다는 점에서 2의 보수가 갖는 여러가지 장점이 있다.
d) 2의 보수의 장점
- 2의 보수는 0을 0000으로만 표현한다.
- 그러므로 -0의 공간이 남게 된다.
- 남은 공간에 -8을 할당하여 사용하게 된다.
- 즉, 2의 보수는 1의 보수보다 한가지 수를 더 표현할 수 있게 된다는 것이다.
e) 1과 2의 보수의 표현범위
- 1의 보수는 다음의 표현 범위를 갖는다.
- 2의 보수는 다음의 표현 범위를 갖는다.
- 이렇게 보면 그저 1의 차이라고 생각할 수 있지만, 컴퓨터 연산과 논리회로적 측면에서 보면 큰 차이를 만든다.
e) 한가지 수를 더 표현할 수 있다는 것의 의미
- 2의 보수가 1의 보수보다 한가지 수를 더 표현할 수 있기때문에 다음과 같은 장점을 갖는다.
▶ 1의 보수보다 저장 효율이 더 좋다.
- 동일한 저장공간으로 더 많은 수의 표현이 가능해진다.
▶ 1의 보수보다 수의 표현 범위가 넓다.
▶ 1의 보수보다 논리회로적인 측면에서 더 좋은 전기효율(전력)을 갖는다.
[자료출처]
'컴퓨터공학기초 개념 > 컴퓨터구조' 카테고리의 다른 글
8. 데이터 표현 - BCD, 패리티 비트, 해밍코드 (0) | 2021.08.05 |
---|---|
7. 데이터 표현 - 실수 (1) | 2021.08.04 |
5. 데이터 표현 - 2의 보수 (Two's complement) (0) | 2021.08.03 |
4. 데이터 표현 - 1의 보수(one's complement) (0) | 2021.08.03 |
3. 데이터 표현 - 보수(Complement)란? (0) | 2021.08.03 |
댓글