컴퓨터는 2진수를 사용하여 정보를 표현한다. 일반적인 양수는 그냥 표현하면 되지만
그렇다면 음수는 어떻게 표현하는가 ?
부호가 있는 2진수를 표현하기 위해 여러가지 표현법이 필요하다.
1. 부호화 크기 표현
가장 단순한 방법으로 n비트의 2진수에서 최상위 비트(가장 왼쪽)은 부호 비트이고 나머지 n-1개의 비트는 수의 절대 크기를 나타낸다.
8비트로 124를 표현하는 경우 부호 비트(8번째 비트)는 0이 되고 나머지 7비트는 124에 해당하는 01111100으로 표현된다
-124의 경우에는 음수이므로 부호 비트는 1이 되고 나머지는 절대값인 124를 표현하기 때문에 11111100이 된다.
부호화-크기 표현은 간단하지만 부호 비트를 별도로 처리하므로 절대 크기를 나타내는 수의 범위가 줄어드는 것이 단점.
부호화 크기 표현의 한계를 극복하기 위해 개발된 것 -> 보수표현
보수는 임의의 수를 보완하는 다른 임의의 수이다.
r진법에서 정의되는 보수는 두 가지로 하나는 r-1의 보수 또 하나는 r의 보수이다.
이로 인해 컴퓨터에서 사용하는 2진수에서는 1의 보수와 2의 보수가 존재한다.
1. 1의 보수
1의 보수는 모든 비트를 반전시켜 음수를 표현. 즉, 0은 1이 되고, 1은 0이 된다.
4비트 이진수로 5와 -5를 표현하면
- 양수 5: 이진수로 0101
- 음수 5 (1의 보수): 0101의 모든 비트를 반전시키면 1010
2. 2의 보수
2의 보수는 1의 보수를 취한 후, 1을 추가하여 음수를 표현.
1의 보수를 사용하면 +0, -0 두가지 가 존재하게 되는데 이를 해결하는 방법으로 2의 보수를 사용
4비트 이진수로 5와 -5를 표현하면
- 양수 5: 이진수로 0101
- 음수 5 (2의 보수): 먼저 0101의 모든 비트를 반전시키면 1010이 되고, 여기에 1을 더하면 1011
(-25)를 2의 보수로 표현된 2진수로 변환하는 과정
1) 부호가 없는 10진수를 부호가 없는 2진수로 변환 : (25) -> (11001) 2진법
2) 부호 비트 삽입 : (011001) 2진법
3) 1의 보수로 만듦 : (100110) 2진법
4) 2의 보수로 만듦 : (100111) 2진법
2의 보수로 표현된 2진수를 10진수로 변환하는 과정
예를 들어 (10010111)을 10진수로 변환하는 방법
첫번째 방법 : 최상위 비트의 자릿수를 2의 지수승으로 표현하고 -부호를 붙여 음수를 만들어 계산한다.
두번째 방법 : 보수를 이용하여 먼저 양수로 만들고 10진수로 변환한 후 최종 단계에서 - 부호를 붙이는 것
-> 1) 2의 보수를 이용하여 음수를 양수로 만듦 2) 10진수로 변환 3) -부호를 붙임
비트확장
1. 부호화 크기 표현
-> 확장 비트에서 최상위 자리에는 부호 비트를 옮기고 나머지는 0으로 채운다
2. 부호 비트 확장
-> 확장 비트를 부호 비트와 동일한 값으로 채우는 것을 부호 비트 확장
'CS > 컴퓨터구조' 카테고리의 다른 글
| 실수표현 (4) | 2024.04.18 |
|---|---|
| 정보의 표현 단위와 수 체계 (1) | 2024.04.17 |