(컴퓨터공학입문) 004. 수의 체계

수의 체계

우리가 일상생활에서 사용하는 숫자는 10진법이라는 진법 체계를 사용한다.

컴퓨터는 어떤 진법을 사용하는지 살펴보자.

진법

진법 이란 사용할 수 있는 숫자의 개수와 위치 값을 정의해주는 수 체계이다.

사용할 수 있는 숫자는 N진법이라고 할때 0부터 N - 1까지이다.

즉 10진법은 0부터 9까지만 사용하는 진법인 것이다.

컴퓨터에서는 주로 2진법, 8진법, 16진법을 사용하는데

만약 10보다 큰 진법의 경우 10에 대응하는 A라는 문자를 써서 표기하기도 한다.

16진법의 경우 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F로 표기하는 식이다.

자릿값

수 체계에 있어 자릿값의 개념은 매우 중요하다.

모든 수를 구성하는 각 숫자는 자릿값을 가지고 있으며

해당 자릿값은 그 값의 위치가 의미하는 제곱수를 해당 진법에 적용하는 방식이다.

각 위치가 의미하는 제곱수는 가장 오른쪽이 0이고 왼쪽으로 가면서 1을 더한 값이 된다.

예를 들어 10진수 123이라는 숫자를 살펴보자.

각 위치의 제곱수는 3은 0, 2는 1, 1은 2가 된다.

수식으로 표현해보면 아래와 같다.

123=1×102+2×101+3×100123 = 1 \times 10^2 + 2 \times 10^1 + 3 \times 10^0

10진수는 우리가 실생활에서 쓰는 진법인만큼 이해도 빠르고 쉽다.

이번엔 2진수, 8진수, 16진수를 한 번 표현해보자.

2진수 예시

1010(2)=1×23+0×22+1×21+0×201010_{(2)} = 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 0 \times 2^0

8진수 예시

765(8)=7×82+6×81+5×80765_{(8)} = 7 \times 8^2 + 6 \times 8^1 + 5 \times 8^0

16진수 예시

AB12(16)=A×163+B×162+1×161+2×160AB12_{(16)} = A \times 16^3 + B \times 16^2 + 1 \times 16^1 + 2 \times 16^0

반대로 소수점은 1씩 빠지게 된다.

0.101(2)=1×21+0×22+1×230.101_{(2)} = 1 \times 2^{-1} + 0 \times 2^{-2} + 1 \times 2^{-3}

8진수 예시

0.65(8)=6×81+5×820.65_{(8)} = 6 \times 8^{-1} + 5 \times 8^{-2}

16진수 예시

0.AB(16)=A×161+B×1620.AB_{(16)} = A \times 16^{-1} + B \times 16^{-2}

어떠한 진법을 썼는지는 위의 수식처럼 우측 하단에 첨자로 표현한다.

진수 간의 값 비교

10진수 2진수 8진수 16진수
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11