-
양의 정수와 음의 정수Computer Science 2021. 3. 3. 11:56
(컴퓨터는 정수(integer)를 1, 2, 4, 8, 바이트 등 다양한 크기로 저장한다. 이 글에서는 1바이트를 기준으로 설명한다.)
양의 정수
정수에는 양수와 음수가 있으므로 부호를 나타내는 데 1비트를 사용한다. 맨 앞의 비트가 0이면 양수, 1이면 음수다.
예를 들어 25를 메모리에 저장할 때 맨 앞의 비트는 양수이므로 0이 된다. 10진수 25를 2진수로 변환하면 11001이므로 나머지 비트를 0으로 채우면 0001 1001로 메모리에 저장된다. 맨 앞의 비트가 부호를 나타낸다는 사실만 알고 있다면 10진수를 2진수로 변환한 것과 같다.
(1바이트로 나타낼 수 있는 수의 크기는 2의 8제곱(0~255)이 아니라, 맨 앞의 비트를 부호로 사용하므로 표현할 수 있는 양수의 범위는 절반으로 줄어든다.(-128~127) but. 음수를 취급하지 않아 0~255를 나타낼 수 있는 자료형도 있다.
음의 정수
컴퓨터는 음수를 보수의 형태로 저장하기 때문에, 보수의 개념을 알아야 한다.
ex) -4의 2의 보수
-2의 보수로 표현하는 이유
양수와 음수를 모두 양수처럼 저장한다고 가정하면, 0000 0000과 1000 0000은 +0과 -0이 된다. 즉. 0을 표현하는 두 가지 방법이 존재하게 되기에, 컴퓨터 입장에서는 수 하나를 더 표현할 수 있는데 비트 하나를 낭비하게 된다. 또한 두 수를 비교할 때 CPU에서 뺄셈을 하는데 +0과 -0을 비교하면 결과 값이 예상과 다르게 나온다.
'Computer Science' 카테고리의 다른 글
컴퓨터의 동작 원리 (0) 2021.10.28 컴파일러 언어vs 인터프리터 언어 (0) 2021.05.09 Home server (0) 2021.04.10 문자와 문자열 (0) 2021.03.03 실수 (0) 2021.03.03