대수중등 · 교육과정: 정규 교육과정 외 — 10 대신 다른 수를 자리값의 기준으로 삼는 표기법. 컴퓨터의 수 표현이 여기서 출발한다. · v1
· 🤖 LLM 버전
🧭 선수 개념 — 이 문서는 다음을 안다는 전제로 쓰였어요: 자연수 (초등) · 나눗셈 (초등) · 지수 (고등)
이 개념은 정규 교육과정 밖에 있지만, 10 대신 다른 수를 자리값의 기준으로 삼는 표기법이며 컴퓨터의 수 표현이 여기서 출발한다.
정의
진법(numeral system, 자릿값 표기법)은 수를 나타낼 때 한 자리씩 올라갈 때마다 값이 일정한 배수로 커지도록 정한 표기 방법이다. 이때 몇 배씩 커지는지를 정하는 수를 그 진법의 밑(base)이라 하고, 각 자리에 쓸 수 있는 숫자는 $0$부터 (밑$-1$)까지다.
십진법: 밑이 $10$이다. $0,1,\dots,9$의 열 개 숫자를 쓰고, 한 자리 올라갈 때마다 값이 $10$배 커진다.
이진법: 밑이 $2$다. $0,1$ 두 개 숫자만 쓰고, 한 자리 올라갈 때마다 값이 $2$배 커진다.
$n$진법으로 쓴 수 $a_k a_{k-1}\cdots a_1 a_0$(각 $a_i$는 $0\le a_i \le n-1$인 정수)가 실제로 나타내는 값은
십진법이 익숙한 이유는 손가락이 열 개라서 열 개까지 세면 "자리를 하나 올려서" 다시 세기 시작하기 때문이다. 만약 스위치처럼 두 가지 상태(꺼짐/켜짐, $0$/$1$)만 구별할 수 있다면, 열까지 세지 못하고 둘까지 세면 바로 자리를 올려야 한다 — 그것이 이진법이다. 컴퓨터 회로는 전압이 낮은지 높은지 두 상태만 안정적으로 구별하므로, 자연스럽게 이진법으로 모든 정보를 표현한다.
문제: 어떤 자연수 $N$을 $n$진법으로 쓰려면, $N = a_k n^k + a_{k-1}n^{k-1} + \cdots + a_1 n + a_0$을 만족하는 자리 숫자 $a_0, a_1, \dots, a_k$를 찾아야 한다. 이걸 어떻게 구할까?
맨 끝자리 $a_0$부터 보자. 식에서 $a_0$을 뺀 나머지 항 $a_k n^k + \cdots + a_1 n$은 모두 $n$의 배수다($n$이 공통으로 곱해져 있으므로). 따라서 $N$을 $n$으로 나누면, 나누어지지 않고 남는 부분이 바로 $a_0$이다. 즉 $a_0 = N$을 $n$으로 나눈 나머지.
이제 $N - a_0$을 $n$으로 나누면 $\dfrac{N-a_0}{n} = a_k n^{k-1} + \cdots + a_1$이 남는다. 이는 처음 문제와 똑같은 모양인데, 자릿수만 하나 줄었다. 그래서 이 몫을 다시 $n$으로 나누면 $a_1$을 얻는다.
이 과정(나누고 나머지를 적고, 몫을 다시 나누기)을 몫이 $0$이 될 때까지 반복하면 $a_0, a_1, \dots, a_k$를 순서대로 모두 얻는다.
예를 들어 $13$을 이진법($n=2$)으로 바꿔 보자.
$$13 \div 2 = 6 \text{ 나머지 } 1 \;(a_0=1)$$
$$6 \div 2 = 3 \text{ 나머지 } 0 \;(a_1=0)$$
$$3 \div 2 = 1 \text{ 나머지 } 1 \;(a_2=1)$$
$$1 \div 2 = 0 \text{ 나머지 } 1 \;(a_3=1)$$
몫이 $0$이 되었으니 멈추고, 나머지를 거꾸로(마지막에 나온 것부터) 읽으면 $1101_{(2)}$. 검산: $1\times 8 + 1\times 4 + 0\times 2 + 1\times 1 = 13$. 이렇게 나눗셈의 나머지를 반복해서 뽑아내는 과정이 곧 진법 변환의 정의이자 방법이다.
컴퓨터 안의 모든 정보(글자, 그림, 소리)는 결국 이진법 숫자열로 저장된다. 예를 들어 화면의 색은 빨강·초록·파랑을 각각 $0\sim255$까지 8자리 이진수(비트 8개, "1바이트")로 표현하는데, $255$는 $11111111_{(2)}$로 8자리를 모두 $1$로 채운 값이고 이보다 큰 값은 8비트로 표현할 수 없다. 전자 회로가 전압의 "높음/낮음" 두 상태만 정확히 구별할 수 있기 때문에, 십진법 대신 이진법이 계산기·컴퓨터의 기본 표기법으로 쓰인다.
⚠️ 흔한 실수
잘못된 생각: 이진법 $1101_{(2)}$을 보고 그냥 "천백일"처럼 읽거나 십진법 $1101$과 같은 수라고 생각한다. → 왜 틀렸는지: 이진법에서 각 자리는 $2$의 거듭제곱을 뜻하므로 $1101_{(2)}=13$이지 $1101$이 아니다. 밑을 반드시 확인해야 한다.
잘못된 생각: 나눗셈으로 진법을 변환할 때 나머지를 나온 순서 그대로(위에서 아래로) 읽는다. → 왜 틀렸는지: 가장 먼저 나온 나머지가 $a_0$(가장 낮은 자리)이므로, 자릿수는 마지막 나머지부터 거꾸로 읽어야 원래 순서가 맞는다.
잘못된 생각: 이진법 수를 쓰다가 $2$라는 숫자를 그대로 쓴다(예: $12_{(2)}$). → 왜 틀렸는지: 이진법에서 한 자리에 쓸 수 있는 숫자는 $0,1$뿐이다. 값이 $2$가 되면 그 자리는 $0$이 되고 윗자리로 $1$이 올라가야 한다($10_{(2)}$처럼).
확인 문제
이진법 $1011_{(2)}$을 십진법으로 바꾸시오.
십진법 $26$을 나눗셈 과정을 직접 써서 이진법으로 바꾸시오.
사람 손가락이 $10$개가 아니라 $5$개였다면 우리는 자연스럽게 오진법(밑이 $5$)을 썼을 것이다. 십진법 $23$을 오진법으로 바꾸는 과정을, 유도 과정에서 쓴 "나눗셈으로 나머지를 뽑아내는" 방법을 그대로 적용해서 구해 보시오. 왜 이 방법이 통하는지도 한 줄로 설명해 보시오.
$23\div5=4\,\text{r}3$, $4\div5=0\,\text{r}4$ → 거꾸로 읽어 $43_{(5)}$. 이 방법이 통하는 이유는 $N$을 밑으로 나눈 나머지가 항상 그 진법의 맨 끝자리(가장 낮은 자리) 숫자이기 때문이다 — 나머지를 뺀 나머지 부분은 항상 밑의 배수라서, 몫을 다시 나누면 그다음 자리를 똑같은 방식으로 구할 수 있다.
📜 역사
여러 문명이 $10$이 아닌 다른 밑을 쓰기도 했다. 예를 들어 바빌로니아 사람들은 각도와 시간을 나타낼 때 $60$진법의 흔적을 남겼는데, 오늘날 한 시간을 $60$분, 원을 $360$도로 나누는 관습이 여기서 이어진다. 이진법 자체는 17세기에 독일의 수학자 라이프니츠(Gottfried Leibniz)가 $0$과 $1$만으로 모든 수를 나타내는 체계를 정리해 소개한 것으로 알려져 있다. 20세기에 들어 불(Boole) 논리의 참/거짓과 이진법의 $1/0$이 전기 회로의 켜짐/꺼짐 상태와 정확히 대응한다는 점이 알려지면서, 이진법은 전자 계산기와 컴퓨터의 기본 표기법으로 채택되었다. "비트(bit)"라는 말은 "이진 숫자(binary digit)"를 줄인 말로, 20세기 중반 정보 이론이 발전하면서 널리 쓰이게 되었다.