컴퓨터는 숫자를 다루기 위해 나온 기계임.
컴퓨터에서 숫자를 어떻게 사용하는지, 숫자를 이용해서 어떤 걸 할 수 있는지 배워보자.
숫자 체계
- 수를 시각적으로 표시하는 방법 (기수법, 숫자를 기록하는 법).
- 인간은 10개의 손가락을 가진만큼 10진법을 사용하지만 컴퓨터는 전류가 흐르냐, 안흐르냐 즉 2진법을 사용함.
- 진법 : 수를 표기하는 방법.
10진법
10진법부터 어떻게 작동하는지 알면 똑같은 숫자 체계에 대한 지식을 다른 진법으로 확장할 수 있음.
- 한 자리에 사용 가능한 숫자가 10개 (0 ~ 9).
- 수 뒤에 (10) 혹은 10을 붙이거나 생략함.

- 0부터 셈.
- 그 자릿수에서 가장 작은 작은 값은 0이니까.
- 0부터 9까지 세면 그다음은 자리에 있던 값을 다시 최솟값으로 돌리고 다음 자리로 수를 올림. 그래서 10이 됨.
- 진법이 동작하는 방식이 한 자리 받아 올릴 때 그 자리에 있던 값은 가장 작은 수로 리셋하는 것임.


- 덧셈도 마찬가지로 5에 3을 더하는 것은 1씩 3번 증가시키는 행위이고, 9에 2를 더하는 것은 1씩 2번 증가시키는 행위임. 근데 9의 경우 더 큰 수의 1의 자리가 없기 때문에 10의 자리를 하나 증가시키고 현재 자리에 있는 값은 0으로 돌아가는 것임.

- 뺄셈은 덧셈의 반대로 줄이는 것임.
2진법
위의 10진법에서 했던 방식 그대로 적용하면 됨.
한 가지 여담으로 2진법이 더 쉬운 게 맞음. 2개밖에 없으니까. 하지만 사람들은 10진법에 익숙해져있기 때문에 2진법을 더 어려워 하는 것임.
- 두 개의 숫자 (0, 1)을 사용해서 수를 표현하는 방법.
- 표기법
- 숫자 뒤에 2 혹은 (2)를 붙임. 수학에서 주로 쓰임.
- 숫자 앞에 ob 혹은 OB를 붙임. 컴퓨터 공학에서 주로 쓰임. B는 binary에서 가져옴.


- 어떻게 셀까?




- 덧셈

- 뺄셈

8진법
- 여덟 개의 숫자 (0 ~ 7)를 사용해서 수를 표현하는 방법.
- 숫자 뒤에 8이나 (8)를 붙임. 근데 컴퓨터 공학에서 자주 쓰이진 않음.
- 자릿값



- 덧셈

- 뺄셈

16진법
- 한 자리에 16개 숫자를 사용해서 수를 표현하는 방법.
- 0 ~ 9, A(10), B(11), C(12), D(13), E(14), F(15).
- 표기법
- 숫자 뒤에 16 혹은 (16)을 붙임 (수학).
- 숫자 앞에 0x 혹은 0X를 붙임 (컴공). 16진수가 영어로 Hexadecimal임.


- 셈

- 덧셈

- 뺄셈

10진수에서 다른 진수로 변환할 때 어떻게 할지 알아보자
10진수 → 2진수
- 흔히 사용한 방법 : 2로 나누기

- 보다 쉽게 계산하는 법
- 2^n 중 변환하고자 하는 값(14)보다 바로 작은 직전의 n 값이 자리수임.
- _ _ _ _ 이 때 각 자리에 있는 수가 2^n보다 작으면 0을, 크면 1을 배정하고 그 값만 큼 뺌.
- 14 - 8 → 1 배정
- 6 - 4 → 1 배정
- 2 - 2 → 1 배정
- 0 - 1 → 0 배정
- 1110(2)
2진수 → 10진수
- 흔히 사용하는 방법 : 각 자리의 수와 자리값을 곱하고 이 모든 것들을 더한 값.
- 쉽게 계산하는 법 : 0인 자리수는 곱해도 0이기 때문에 0인 값을 생략하고 계산.
10진수 ↔ 8진수

10진수 ↔ 16진수

2진수 → 8진수
- 2^3 = 8
- 즉 8진수의 각 한 자릿수는 2진수의 세 자릿수와 동일함.
- 2진수를 세 자리씩 끊어서 8진수 한 자리로 변환.

8진수 → 2진수
- 8진수의 각 자리를 세 자릿수의 2진수로 변환.


2진수 → 16진수
- 2진수의 네 자리씩 끊어서 하나의 16진수로 변환.

16진수 → 2진수
- 16진수의 네 자리씩 끊어서 하나의 2진수로 변환.

8진수 → 16진수
