컴터몰라요 2022. 9. 3. 20:22

정수 - 소수점 이하의 값을 갖지 않는 수로 무한대이지만 컴퓨터에서는 할당된 메모리가 허용하는 범위만큼만 표현 가능.

(1) 부호 없는 정수
부호(+,-)를 표시하는 비트값이 없음. 양의 정수만 표시 가능
범위 - 0부터 (2^n)-1까지. 8비트=(0~255) 16비트=(0~65535)
할당된 비트 이상의 값= 오버플로(overflow) ° 275(8베로 표시 불가 9피트 필요)

(2) 부호 있는 정수
+,- 부호를 모두 사용하기 위해 할당된 비트 중에서 최상위 1비트는 부호 비트로 사용하고 나머지 비트는 주어진 정수의 크기를 나타내는 데 사용.
0=양의 정수 1=음의 정수
양의 정수의 경우 부호 없는 정수를 나타낼 때는 단순히 2진수로 변환하면 되지만 음의 정수의 경우 3가지 방법이 있다.

① 부호화-크기 방식
주어진 음의 정수에 대해 절대값을 취해서 표현하기 때문에 부호 비트를 제외하면 나머지 비트는 양의 정수이든 음의 정수이든 상관없이 동일한 형태로 표현
124의 2진수 -> 01111100 -124의 2진수 -> 10000011
부호 비트에 따라 2개의 영(+0, -0)이 존재하기 때문에 0의 부호를 검사해야 하는 문제점 생김.
n비트로 표현할 수 있는 수의 범위 - 부호 비트 1비트 제외 후 (n-1)비트로 가능하기 때문에 -(2^n-1 -1) ~ +(2^n-1 -1)

② 1의 보수 방식
양의 정수에 대한 보수로 음의 정수를 표현하는 것. 0을 1로 1을 0으로 바꿈.
표현할 수 있는 수의 범위는 부호화-크기 방식과 동일하며 2개의 1이 나온다는 문제점 존재.
예) 01001010 -> 10110101

③ 2의 보수 방식
음의 정수는 1의 보수 방식으로 계산한 결과에 1을 더해서 표현.
124의 2진수 -> 01111100 -124의 2진수 -> 10000100
오직 하나의 0이 존재하며, 표현 가능한 수의 범위는 -0이 없기 때문에 음수를 하나 더 표현 가능. -(2^n-1) ~ +(2^n-1 -1)

컴퓨터에서는 일반적으로 2의 보수 방식을 사용.