비트와 이진수
스위치 여덟 개로 서로 다른 패턴 256가지를 만들 수 있고, 0부터 255까지 모든 수를 나타낼 수 있습니다.
읽기 전에 아래 스위치부터 만져 보세요. 먼저 「모두 끄기」를 누르고, 맨 오른쪽 스위치 하나만 켭니다. 스위치 줄 아래에 1이 나옵니다. 그 스위치를 끄고 바로 왼쪽 스위치를 켜면 2가 나옵니다. 그다음은 4, 그다음은 8입니다. 이렇게 한 칸씩 왼쪽으로 옮겨 가면 맨 왼쪽 스위치에서 128이 나옵니다. 바이트 하나의 스위치 여덟 개가 가질 수 있는 자리값을 방금 모두 만났습니다. 숫자가 어떻게 늘어났는지 기억해 두세요.
끌어서 돌리고, 휠이나 두 손가락으로 확대하세요.
스위치 하나는 오른쪽 스위치의 두 배입니다
방금 본 것이 이진법의 전부입니다. 십진법에서는 자리가 하나 왼쪽으로 갈 때마다 값이 열 배가 됩니다. 일의 자리, 십의 자리, 백의 자리를 생각하면 됩니다. 이진법에서는 열 배가 아니라 두 배씩 커져서 자리값이 1, 2, 4, 8, 16, 32, 64, 128로 이어집니다. 이진수를 읽을 때는 켜진 스위치의 자리값만 모두 더합니다. 00100101은 32, 4, 1 자리가 켜져 있으니 32 + 4 + 1 = 37입니다. 위 장면에서 그 세 개만 켜 보면 아래 줄에도 37이 나옵니다. 여기서 규칙이 하나 저절로 따라 나옵니다. 홀수 값을 가진 스위치는 맨 오른쪽 1의 자리 하나뿐입니다. 그래서 마지막 비트가 0이면 그 수는 짝수이고, 1이면 홀수입니다.
칩이 열 단계가 아니라 두 단계를 쓰는 까닭
화면 속 스위치는 진짜 스위치를 흉내 낸 그림입니다. 컴퓨터 칩 안에는 트랜지스터라는 아주 작은 전자 스위치가 수십억 개 들어 있고, 하나하나가 어느 순간이든 전류를 흘려보내거나 막고 있습니다. 엔지니어들은 이 두 상태를 1과 0으로 적습니다. 1이나 0 하나를 비트(bit)라고 하는데, 이진 숫자라는 뜻의 binary digit를 줄인 말입니다. 키보드로 친 글자 한 자도, 이어폰으로 듣는 노래 한 곡도 컴퓨터 안에서는 비트를 길게 늘어놓은 줄로 저장됩니다.
그러면 십진수처럼 열 단계를 쓰면 안 될까요? 칩 안의 전선에 걸리는 전압은 한 번도 딱 떨어지게 정확하지 않습니다. 열, 바로 옆을 지나는 전선, 트랜지스터마다 조금씩 다른 성질 때문에 전압은 늘 조금씩 오르내립니다. 「높음」과 「낮음」만 가리면 되는 회로는 이런 흔들림을 대부분 무시할 수 있습니다. 가운데에 선을 하나 그어 두고, 그보다 높으면 1, 낮으면 0으로 읽으면 되니까요. 같은 전압 범위에 열 단계를 밀어 넣으면 단계 사이 간격이 좁아져서, 조금만 흔들려도 옆 단계로 잘못 읽힙니다. 스위치 입장에서도 두 상태가 가장 쉽습니다. 완전히 켜거나 완전히 끄면 되고, 그 중간 어딘가를 조심스럽게 붙들고 있을 필요가 없습니다.
스위치로 100 만들기
거꾸로 수를 비트로 바꿀 때는 큰 돈부터 내는 계산과 비슷하게 합니다. 편의점에서 3,700원을 낼 때 1,000원짜리를 먼저 세고 나머지를 동전으로 맞추는 것과 같은 순서입니다. 100을 예로 들어 보겠습니다. 128은 100보다 커서 쓸 수 없습니다. 64는 들어가고 36이 남습니다. 32가 들어가고 4가 남습니다. 남은 4에는 16도 8도 너무 큽니다. 4가 들어가고 0이 남습니다. 그래서 64, 32, 4 자리를 켜면 1100100, 여덟 자리를 다 채워 쓰면 01100100입니다. 장면에서 목표를 100으로 골라 맞는지 확인할 수 있습니다. 다른 방법을 더 좋아하는 사람도 있습니다. 수를 2로 계속 나누면서 나머지를 적어 두고, 그 나머지를 아래에서 위로 읽는 방법입니다. 어느 방법으로 하든 비트는 똑같이 나옵니다.
스위치가 하나 늘면 패턴은 두 배
스위치 여덟 개로는 서로 다른 수를 몇 개나 만들 수 있을까요? 비트가 하나 늘 때마다 가짓수가 두 배가 됩니다. 1비트는 2가지, 2비트는 00, 01, 10, 11의 4가지, 3비트는 8가지이고, n비트는 2의 n제곱 가지입니다. 8비트인 바이트 하나는 256가지라서 0부터 255까지 셀 수 있습니다. IPv4 주소에 들어 있는 네 숫자가 하나같이 255에서 멈추는 이유도 여기에 있습니다. 물건 1000개에 저마다 다른 번호를 붙여야 한다면 몇 비트가 필요할까요? 9비트로는 512가지밖에 안 되어 모자랍니다. 10비트여야 1024가지가 되어 넉넉해집니다.
0에서 시작해 「+1」을 몇 번 눌러 보면서 스위치를 지켜보세요. 바퀴마다 숫자가 0과 1 두 개뿐인 자동차 주행 거리계처럼 움직입니다. 0, 그다음 1, 그다음에는 1의 자리가 한 바퀴 돌아 0이 되면서 2의 자리로 1을 올려 보내 10이 됩니다. 그다음 11, 그다음에는 두 자리가 한꺼번에 넘어가 100이 됩니다. 스위치를 모두 켜면 11111111이고, 이 수는 255입니다. 255 + 1의 진짜 답은 256이고, 256을 쓰려면 아홉째 비트가 필요해서 100000000이 됩니다. 이 장면은 여덟 비트만 담기 때문에 255에서 「+1」을 누르면 0이 나옵니다. 이것을 오버플로라고 하며, 덧셈기 단원에서 다시 만납니다.
| 비트 | 이진 숫자 하나: 0 또는 1 |
| 바이트 | 8비트, 256가지 패턴 |
| 자리값 | 1, 2, 4, 8, 16, 32, 64, 128 |
| n비트 | 2ⁿ가지 패턴 |
| 11111111 | 255 |
| 오버플로 | 결과가 담을 비트보다 큼 |
- 「10은 십이다.」 십진법에서만 그렇습니다. 이진법의 10은 2의 자리에 1, 1의 자리에 0이 있으니 2입니다. 어느 쪽인지 헷갈릴 수 있을 때는 10₍₂₎처럼 오른쪽 아래에 작게 2를 붙여서 이진수라는 것을 밝혀 둡니다. 컴퓨터 과목에서 「10」이 나오면 먼저 어느 진법인지 확인하는 습관을 들이세요.
- 「1이 많을수록 큰 수다.」 1의 개수보다 자리가 중요합니다. 01111111은 1이 일곱 개인데 127이고, 10000000은 1이 하나뿐인데 128입니다. 128 = 127 + 1이므로 맨 왼쪽 스위치 하나가 오른쪽 일곱 개를 모두 합친 것보다 큽니다. 두 수를 비교할 때는 자리값이 큰 왼쪽부터 보면 됩니다.
- 「바이트 하나에는 256까지 담을 수 있다.」 바이트 하나의 패턴은 256가지가 맞지만, 그중 00000000 하나를 0에 씁니다. 그래서 가장 큰 수는 255입니다. 4비트도 마찬가지로 패턴은 16가지, 가장 큰 수는 15입니다. 0부터 세기 시작한다는 것만 기억하면 헷갈리지 않습니다.
- 1011은 십진수로 얼마입니까?
- 37을 이진수로 쓰세요(앞의 0은 빼고).
- 1100100은 십진수로 얼마입니까?
- 8비트로 서로 다른 패턴을 몇 가지 만들 수 있습니까?
- 바이트 하나에 담을 수 있는 가장 큰 수는 얼마입니까?
- 4비트로는 패턴이 몇 가지입니까?
- 서로 다른 것 1000개에 번호를 붙이려면 몇 비트가 필요합니까?
- 이진수로 셀 때 0111 다음은 무엇입니까? 네 자리로 쓰세요.
- 다음 중 홀수는 어느 것입니까?
- 10011
- 10010
- 11110
- 100
- 255 + 1 = 256에는 몇 비트가 필요합니까?
- 비트는 0 또는 1이고, 바이트는 8비트입니다.
- 이진수 자리값은 두 배씩 커집니다. 1, 2, 4, 8, 16, 32, 64, 128.
- n비트는 2ⁿ가지 패턴이고, 바이트 하나는 0~255를 담습니다.
- 모두 1인 수에 1을 더하면 자리가 넘어가며 비트가 하나 더 필요합니다.
이 과정의 출처 (9)
- (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
- Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
- IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
- IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
- Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
- Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
- Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
- abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
- John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).
확인한 날: 2026-10-17