티스토리 뷰
Computer Science/컴퓨터구조
unsigned number와 signed number를 표현하는 방법과 Two`s Complement(2의 보수) 표현 방법
포모로우 2018. 4. 5. 23:23* 기본적으로 알고 가야 될 사항
- MSB(Most Significant Bit)
MSB(Most Significant Bit)는 한국말로 최상위 비트라 하는데 가장 왼쪽에 있는 비트를 말한다.
이것은 부호를 결정하는 비트다. MSB가 1이면 음수를 나타내고 MSB가 0이면 양수를 나타낸다.
unsigned number(부호 없는 값)에서 3비트의 정수는 0~7까지의 범위를 가진다.
signed number(부호 있는 값)은 MSB가 1이면 음수고 0이면 양수기 때문에 절반이 음수 범위로 가게 되어
-4~3까지의 범위(2의 보수기준)를 갖는다.
- 보수(Complement)
쉽게 말하자면 컴퓨터에서 음수를 표시하기 위해 사용되는 것이라고 생각하면 된다.
1. unsigned number
우선 unsigned number는
unsigned binary integers(부호 없는 이진수 정숫값)으로 표현해 보겠다.
일반화한 range는 0~ 2n -1을 갖는다.
일반화한 range는 0~ 2n -1을 갖는다.
3비트로 예를 들어보자
000 : 0 / 001 : 1 / 010 : 2 / 011 : 3 / 100 : 4 / 101 : 5 / 110 : 6 / 111 : 7
총 8개의 숫자를 갖는다.
일반화 시킨다면 range는 0 ~ 2n-1을 갖는다.
2. signed number
2진수 3비트로 예를 들어보자.
picture 2-1(포스팅 기준)
출처: http://www.myshared.ru/slide/1047057/
2진수의 음수 표현 방법은 3가지가 존재한다.
1. Sign Magnitude(부호-절댓값)
MSB(부호 비트)가 1이고, 남은 부분에는 절댓값이 그대로 저장된다.
2. One`s Complement(1의 보수)
MSB(부호 비트)가 1이고, 남은 부분에는 1과 0을 반전한 값이 들어간다.
3. Two`s Complement(2의 보수)
MSB(부호 비트)가 1이고, 남은 부분에는 1과 0을 반전한 값에 1을 더한 값이 설정된다.
3. Two`s Complement(2의 보수)
위의 pic 2-1을 살펴보자.
Sign Magnitude와 One`s Complement(1의 보수)로 표현하는 경우
Sign Magnitude와 One`s Complement(1의 보수)로 표현하는 경우
0을 +0과 -0의 2가지 방법으로 표현하게 된다.
하지만 Two`s Complement(2의 보수)는 이런 불필요한 현상이 일어나지 않는다.
고로 마이너스를 표현할 수 있는 수가 다른 표현보다 1가지 더 많아지는 것이다.
Two`s Complement(2의 보수)의 range는 -2(n-1) ~ 2(n-1) - 1 이 된다.
고로 3비트는 -4 ~ 3까지 표현이 가능한 것이다.
그러므로 실제로 거의 모든 컴퓨터에서 2의 보수를 사용하고 있다.
※참고
Two`s Complement(2의 보수) 더욱 쉽게 표현하는 방법
쉽게 말하면, 오른쪽에서 왼쪽으로 읽어가면서 처음에 나오는 1까지만 그대로 쓰고 나머지는 반전시킨다.
'Computer Science > 컴퓨터구조' 카테고리의 다른 글
Memory hierarchy(메모리 계층 구조) (0) | 2018.04.05 |
---|
댓글