컴퓨터, 휴대전화, 그리고 전파망원경의 기록 장치는 모든 것을 0과 1 두 가지 숫자로만 다룹니다. 0과 1 하나를 비트(bit)라고 하고, 비트를 늘어놓아 수를 적는 방법을 2진수(이진수)라고 합니다. 이 페이지에서는 2진수를 읽고 쓰는 법, 16진수, 2의 거듭제곱, 그리고 bit와 byte를 헷갈리지 않는 법을 차근차근 살펴봅니다.
전파교실의 여러 페이지에 이런 식이 나옵니다.
첫째 식은 디지털변환 ADC 편에서 \(N\)비트로 전압을 몇 칸으로 나누는지, 둘째 식은 숫자 13을 0과 1로 적은 것, 셋째 식은 대용량 데이터 전송 및 수신 편에서 관측 데이터가 얼마나 쌓이는지 계산하는 식입니다. \(2^N\), 아래 첨자 \((2)\), 그리고 "8로 나누기"가 무엇인지 알면 세 식을 모두 읽을 수 있습니다.
우리가 쓰는 10진수는 0부터 9까지 10개의 숫자를 쓰고, 자리가 하나 올라갈 때마다 값이 10배가 됩니다. 예를 들어 \(345\)는 "100이 3개, 10이 4개, 1이 5개"라는 뜻입니다.
2진수는 0과 1 두 개의 숫자만 쓰고, 자리가 하나 올라갈 때마다 값이 2배가 됩니다. 오른쪽 끝 자리부터 1, 2, 4, 8, 16, 32, 64, 128…의 값을 가집니다. 각 자리의 비트가 1이면 "그 자리 값을 넣는다", 0이면 "넣지 않는다"는 뜻입니다.
수 오른쪽 아래의 작은 \((2)\)는 "이 수는 2진수"라는 이름표입니다. 이름표가 없으면 \(10\)이 '십'인지 2진수 '일영'(=2)인지 알 수 없기 때문입니다. 2진수는 "일영일일영일"처럼 숫자를 하나씩 읽습니다.
비유: 1원, 2원, 4원, 8원, 16원, 32원, 64원, 128원짜리 동전이 한 개씩 있다고 해 봅시다. 어떤 동전을 낼지(1) 말지(0)만 정하면 0원부터 255원까지 어떤 금액이든 딱 한 가지 방법으로 만들 수 있습니다. 2진수가 바로 이 원리입니다.
디지털 통신 편에서는 13을 00001101로, 디지털변환 ADC 편에서는 2로 나누어 나머지를 모으는 방법을 보았습니다. 여기서는 또 다른 방법인 큰 자리부터 빼기를 해 봅니다.
🧮 계산 예시 — 10진수 200을 8비트 2진수로 바꾸기
상황: 8비트 ADC가 어느 순간의 전파 세기를 "200번 칸"으로 쟀습니다. 이 칸 번호를 0과 1로 적어 봅시다.
📐 수학 도움말: \(2^7 = 128\)은 2를 7번 곱한 값입니다. 8비트의 자리 값은 \(2^7, 2^6, \ldots, 2^1, 2^0\)이고, \(2^0 = 1\)로 약속합니다. 거듭제곱은 거듭제곱과 제곱근 편에서 자세히 다룹니다.
👉 정리: 가장 큰 자리부터 "넣을 수 있으면 1, 아니면 0"을 정하며 빼 나가면 2진수가 됩니다. 아래 스위치로 직접 확인해 보세요.
👉 비트 스위치를 눌러 켜고(1) 꺼(0) 보세요!
스위치를 눌러 보세요. 모든 비트를 켜면 255, 왼쪽으로 한 칸 밀면 값이 2배가 됩니다(넘친 비트는 사라집니다).
+1을 계속 눌러 보세요. 1인 자리에 1을 더하면 0이 되고 윗자리로 1이 올라갑니다(받아올림). 10진수에서 9 다음이 10이 되는 것과 같습니다. 255에서 +1을 누르면 8비트로는 256을 적을 수 없어 0으로 돌아갑니다(넘침, overflow).
2진수는 자리가 너무 길어 사람이 읽기 어렵습니다. 그래서 비트 4개를 한 묶음으로 묶어 숫자 하나로 적는 16진수를 씁니다. 4비트로는 \(2^4 = 16\)가지를 나타낼 수 있으므로, 0~9 다음에 A(10), B(11), C(12), D(13), E(14), F(15)를 씁니다.
| 4비트 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10진수 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16진수 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
\(11001000_{(2)} = \mathrm{C8}_{(16)} = 12\times16 + 8 = 200\)
16진수에서는 자리가 하나 올라갈 때마다 값이 16배가 됩니다. 그래서 \(\mathrm{C8}_{(16)} = 12 \times 16 + 8 = 200\)입니다.
프로그램에서는 아래 첨자 대신 앞에 0x를 붙여 0xC8처럼 쓰기도 합니다.
16진수 한 자리는 비트 4개, 두 자리는 비트 8개(1바이트)이므로 바이트 하나를 16진수 두 자리로 적을 수 있다는 점이 편리합니다.
🧮 계산 예시 — 네트워크 카드의 MAC 주소 읽기
상황: 네트워크 카드 편에서 MAC 주소는 00:1A:2B:3C:4D:5E처럼 16진수 12자리로 쓴다고 했습니다.
이 가운데 1A는 어떤 수이고, 주소 전체는 몇 비트일까요?
📐 수학 도움말: 16진수 자리 값은 오른쪽부터 \(16^0 = 1\), \(16^1 = 16\), \(16^2 = 256\)…입니다. \(2.8\times10^{14}\) 같은 표기는 큰 수·작은 수와 단위 편을 참고하세요.
👉 정리: 16진수는 2진수를 4비트씩 묶어 짧게 쓴 것일 뿐, 새로운 수가 아닙니다. 위의 스위치에서 앞·뒤 4비트가 16진수 두 자리로 바뀌는 것을 확인해 보세요.
통신보안 편의 해시 함수 SHA-256이 만드는 "256비트(16진수 64자리)"도 같은 계산입니다. \(256 \div 4 = 64\)자리입니다.
비트 하나는 0 또는 1, 두 가지입니다. 비트가 2개면 00, 01, 10, 11의 \(2\times2 = 4\)가지, 3개면 \(2\times2\times2 = 8\)가지입니다. 비트가 하나 늘 때마다 가짓수가 2배가 되므로,
가장 큰 값이 \(2^n\)이 아니라 \(2^n - 1\)인 이유는 0부터 세기 때문입니다. 8비트는 256가지이고, 0~255를 나타냅니다.
| 비트 수 n | 가짓수 \(2^n\) | 쓰이는 곳 |
|---|---|---|
| 1 | 2 | 켜짐/꺼짐, 예/아니요 |
| 2 | 4 | KVN 같은 전파망원경의 2비트 양자화(디지털변환 ADC), QPSK 한 심볼(디지털 통신) |
| 4 | 16 | 16진수 한 자리 |
| 8 | 256 | 1바이트, 화면 한 색의 밝기 0~255(TV 방송 송출과 수신 원리) |
| 10 | 1,024 | 웹캠 화소 하나의 밝기(웹카메라 동작원리), \(2^{10} \approx 1{,}000\) |
| 16 | 65,536 | 음악 CD의 소리 크기 |
| 24 | 16,777,216 | 화소당 24비트 색(빨강·초록·파랑 각 8비트) |
\(2^{10} = 1{,}024 \approx 1{,}000\)은 아주 쓸모 있는 어림입니다. 비트가 10개 늘 때마다 가짓수는 약 1,000배가 됩니다.
"64가지를 구별하려면 비트가 몇 개 필요할까?"처럼 거꾸로 묻기도 합니다. 2를 6번 곱하면 64이므로 6비트입니다. 이것을 \(\log_2 64 = 6\)이라고 씁니다. \(\log_2 M\)은 "2를 몇 번 곱해야 \(M\)이 되나"라는 뜻입니다. 디지털 통신 편의 "한 심볼의 비트 수 \(= \log_2 M\)"이 이 계산입니다. 로그는 로그와 데시벨(dB) 편에서 다룹니다.
대용량 데이터 전송 및 수신 편의 TCP 창 크기 "65,535바이트"는 16비트 칸에 담을 수 있는 가장 큰 수 \(2^{16} - 1\)입니다.
🧮 계산 예시 — 24비트 색은 몇 가지일까?
상황: TV 방송 송출과 수신 원리 편에서 화소 하나는 빨강·초록·파랑 밝기를 각각 8비트로 적어 24비트를 쓴다고 했습니다. 화소 하나가 낼 수 있는 색은 몇 가지일까요?
📐 수학 도움말: 밑이 같은 거듭제곱끼리 곱하면 지수를 더합니다(\(2^8\times2^8\times2^8 = 2^{8+8+8}\)). 지수 법칙은 거듭제곱과 제곱근 편에 있습니다.
👉 정리: 비트가 늘면 가짓수는 더하기가 아니라 곱하기로 늘어납니다. 24비트 = 약 1,677만 색입니다.
디지털변환 ADC는 연속적인 전압을 \(2^N\)개의 계단(단계) 가운데 가장 가까운 것으로 바꿉니다. 같은 전압 범위를 더 많은 계단으로 나누면 계단 하나의 높이가 줄어, 원래 신호에 더 가까워집니다. ADC 편에서는 이 계단 높이를 그리스 문자 \(\Delta\)(델타)로 적습니다.
비트가 1개 늘면 계단 수는 2배, 계단 높이는 절반이 됩니다. 아래 슬라이더로 확인해 보세요.
전파망원경이 2비트(4단계)만으로도 잘 작동하는 이유는 디지털변환 ADC 편의 '좀 더 알아보기'에 있습니다.
비트 8개를 묶은 것을 바이트(byte)라고 합니다. 단위 기호는 소문자 b가 비트, 대문자 B가 바이트입니다. 이 한 글자 차이로 값이 8배 달라집니다.
CCTV 편의 하루 저장량 식 분모에 있는 8, 대용량 데이터 전송 및 수신 편의 "200 MB/s는 1.6 Gbps"(\(200\times8 = 1{,}600\ \text{Mbps}\))도 모두 이 8입니다.
🧮 계산 예시 — 100 Mbps 인터넷으로 4.7 GB 파일 내려받기
상황: 집 인터넷 요금제가 100 Mbps이고, 4.7 GB(DVD 한 장 분량) 동영상 파일을 내려받으려 합니다. 가장 빠르면 몇 초 걸릴까요?
📐 수학 도움말: G(기가)는 \(10^9\), M(메가)는 \(10^6\)입니다. \(10^{10} \div 10^8 = 10^{10-8} = 10^2\)처럼 거듭제곱끼리 나누면 지수를 뺍니다. 실제로는 오류 정정, 패킷 머리말 등 덧붙는 정보 때문에 이보다 조금 더 걸립니다.
👉 정리: 속도(bps)와 크기(B)의 단위를 먼저 비트로 맞춘 뒤 나눕니다. "b는 비트, B는 바이트, 그 차이는 8배"를 기억하세요.
국제단위계(SI)의 접두어 k(킬로)는 정확히 \(10^3 = 1{,}000\), M(메가)는 \(10^6\), G(기가)는 \(10^9\)입니다. 그런데 컴퓨터 메모리는 2진수로 주소를 매기기 때문에 \(2^{10} = 1{,}024\)씩 묶는 것이 편해서, 오랫동안 "1 KB = 1,024 B"로도 써 왔습니다. 이 혼란을 없애려고 1998년 국제전기기술위원회(IEC)가 2진 접두어 Ki(키비), Mi(메비), Gi(기비), Ti(테비)를 따로 정했습니다.
| 10진 접두어 | 값 | 2진 접두어 | 값 | 2진이 큰 정도 |
|---|---|---|---|---|
| kB (킬로바이트) | \(10^3\) = 1,000 B | KiB (키비바이트) | \(2^{10}\) = 1,024 B | 약 2.4 % |
| MB (메가바이트) | \(10^6\) = 1,000,000 B | MiB (메비바이트) | \(2^{20}\) = 1,048,576 B | 약 4.9 % |
| GB (기가바이트) | \(10^9\) B | GiB (기비바이트) | \(2^{30}\) = 1,073,741,824 B | 약 7.4 % |
| TB (테라바이트) | \(10^{12}\) B | TiB (테비바이트) | \(2^{40}\) = 1,099,511,627,776 B | 약 10.0 % |
이 사이트의 계산은 특별히 말하지 않으면 10진 접두어(1 TB = 1,000 GB)를 씁니다(CCTV 편 등). k는 소문자이고 2진 접두어 Ki의 K는 대문자라는 점도 다릅니다.
🧮 계산 예시 — 1 TB 하드디스크가 931 GB로 보이는 이유
상황: 1 TB 외장 하드디스크를 샀는데, 컴퓨터에 연결하니 "931 GB"라고 나옵니다. 고장일까요?
📐 수학 도움말: \(2^{30} = (2^{10})^3 = 1{,}024^3\)입니다. \(1{,}024 = 1{,}000 \times 1.024\)이므로 \(2^{30} = 10^9 \times 1.024^3 \approx 10^9 \times 1.074\)입니다.
👉 정리: 고장이 아닙니다. 바이트 수는 똑같고, 1,000으로 묶어 세느냐 1,024로 묶어 세느냐만 다릅니다.
1인 자리는 128, 32, 8, 2이므로 \(128 + 32 + 8 + 2 = 170\)입니다. 4비트씩 나누면 1010 = A, 1010 = A이므로 16진수로는 \(\mathrm{AA}_{(16)}\)입니다(\(10\times16 + 10 = 170\)). 위의 스위치로 확인해 보세요.
\(2^{10} = 1{,}024\)단계이고, 0부터 세므로 가장 밝은 칸은 \(2^{10} - 1 = 1{,}023\)번입니다. 8비트(256단계)보다 4배 촘촘합니다.
\(10^9\ \text{B} \times 8 = 8\times10^9\ \text{bit}\), 50 Mbps \(= 5\times10^7\ \text{bit/s}\)이므로 \(8\times10^9 \div (5\times10^7) = 160\ \text{s}\), 2분 40초입니다.
함께 보면 좋은 기초 수학: 거듭제곱과 제곱근(\(2^n\)과 지수 법칙), 로그와 데시벨(dB)(\(\log_2\)), 큰 수·작은 수와 단위(k, M, G 접두어), 수식 기호 읽기(아래 첨자 읽는 법).
🧑🏫 선생님·학부모님을 위한 설명 도움말
원리 자세히 보기
비유로 설명하기
자주 하는 오해
함께 해 볼 질문·활동
📚 참고 자료 및 출처
본 교육자료는 Anthropic(Claude) 및 OpenAI(ChatGPT)를 활용하여 제작하였으며, 제작자가 내용을 검토·편집하였습니다. 주요 참고자료와 출처는 각 페이지의 「참고 자료 및 출처」에 명시하였습니다. 출처가 별도로 표기되지 않은 페이지와 참고자료에 포함되지 않은 내용은 제작자가 직접 작성하거나 정리한 것입니다. 내용에 오류가 있거나 수정이 필요한 사항을 발견하시면 kvnsite@kasi.re.kr로 알려 주시기 바랍니다.