1. 2진수 음수의 표현 방법 구분
ㅇ ⑴ 부호 크기 체계 (signed magnitude, sign and magnitude system)
- 첫번째 비트(부호 비트,sign bit) : 부호 비트(보통 가장 왼쪽 첫번째 비트, MSB)
. `1` -> 음수, `0` -> 양수
- 나머지 비트들 : 절대값 크기(magnitude)
. 표시범위 : - 2n-1 ~ 2n-1
ㅇ ⑵ 보수 체계 (complement number system,two`s complement)
- ① 2의 보수 (Two's Complement)
. 표시범위 : -2n-1 ~ 2n-1-1
.. 컴퓨터(디지털시스템)에서 보다 많이 사용
- ② 1의 보수 (One's Complement)
. 표시범위 : - 2n-1 ~ 2n-1
2. 음수의 표현 상의 특징
ㅇ 부호 크기 체계 : 부호 비트로 음수/양수를 그대로 바꿀 수 있음
ㅇ 보수 체계 : 보수를 취하여 음수를 표현하게 됨
- 2의 보수
. 부호 비트(sign bit) `1`이면, 2N을 빼면 됨
. 이는, 1의 보수(전체 비트를 반전)의 최하위자리(LSB)에 1 을 더한 수와 같음
- 1의 보수
. 단지 `1`을 `0`으로, `0`을 `1`로 바꾸기만하면 됨
. 이를 자기보수(self-complement)라고도 함
3. 4 비트 표현 例)
ㅇ 비교표 (부호크기체계,2의보수,1의보수)
ㅇ 최대 양수, 영(0), 최대 음수 비교표
4. 비트 길이가 늘어났을 때의 부호 처리 방법
ㅇ 부호의 확장 (sign extension)
- 부호크기체계
. 부호는 MSB에 복사하여 두고 늘어난 부분 만큼을 `0`으로 채움
- 2의 보수 및 1의 보수
. 늘어난 부분 만큼 부호 비트에 있는 같은 수로 채움
5. 컴퓨터에서 `2의 보수` 사용 이유
ㅇ 2진 보수(2의 보수,1의 보수)의 장점
- `음수 표현` 및 `보다 쉽게 연산을 하기` 위함
. 컴퓨터는 뺄셈 회로가 없으며, 보수를 취하는 회로 만 있음.
.. 보수를 취하고 더하면 뺄셈이 되므로, 굳이 뺄셈 회로를 따로 둘 필요 없음
* 2의 보수에 의한 뺄셈 例) 5 - 3 = 5 + (-3) = (0101) + (1101) = (0010) = 2
. 여기서, -3에 대한 2의 보수는, 0011 -> 1100 (비트 반전) -> 1101 (1 더함)
ㅇ 부호크기체계의 단점
- 부호비트를 좌,우 어느 끝단에 붙일지 일관성있게 하기가 쉽지 않음
- 덧셈기 결과의 부호에 대한 결정에 한 단계가 더 필요함
. 미리 연산 결과를 알 수 없기 때문
ㅇ (부호크기체계 및 1의 보수)의 단점
- 영(0)이 `양의 영(+0)`,`음의 영(-0)` 2개를 동시에 갖으므로 부주의한 프로그래밍
발생 가능성 있음