edubun
한국어

비트와 이진수

스위치 여덟 개로 서로 다른 패턴 256가지를 만들 수 있고, 0부터 255까지 모든 수를 나타낼 수 있습니다.

읽기 전에 아래 스위치부터 만져 보세요. 먼저 「모두 끄기」를 누르고, 맨 오른쪽 스위치 하나만 켭니다. 스위치 줄 아래에 1이 나옵니다. 그 스위치를 끄고 바로 왼쪽 스위치를 켜면 2가 나옵니다. 그다음은 4, 그다음은 8입니다. 이렇게 한 칸씩 왼쪽으로 옮겨 가면 맨 왼쪽 스위치에서 128이 나옵니다. 바이트 하나의 스위치 여덟 개가 가질 수 있는 자리값을 방금 모두 만났습니다. 숫자가 어떻게 늘어났는지 기억해 두세요.

불러오는 중

끌어서 돌리고, 휠이나 두 손가락으로 확대하세요.

스위치를 눌러 수를 만들어 보세요. 아래에 자리값의 합이 나오고, 패널에는 같은 패턴을 십진수, 십육진수, ASCII 글자로 보여 줍니다. 목표를 골라 37, 100, 255를 만들어 보세요.

스위치 하나는 오른쪽 스위치의 두 배입니다

방금 본 것이 이진법의 전부입니다. 십진법에서는 자리가 하나 왼쪽으로 갈 때마다 값이 열 배가 됩니다. 일의 자리, 십의 자리, 백의 자리를 생각하면 됩니다. 이진법에서는 열 배가 아니라 두 배씩 커져서 자리값이 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ⁿ가지 패턴
11111111255
오버플로결과가 담을 비트보다 큼
자주 하는 실수
  • 「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부터 세기 시작한다는 것만 기억하면 헷갈리지 않습니다.
선생님 메모설명보다 스위치를 먼저 누르게 하세요. 오른쪽부터 하나씩 켜면서 「1, 2, 4, 8」 하고 소리 내어 읽게 하면, 넷째 스위치쯤에서 대부분 두 배씩 커진다는 것을 스스로 찾아냅니다. 막히는 곳은 십진수를 이진수로 바꾸는 단계입니다. 오른쪽 자리부터 어림으로 채우다가 틀리는 경우가 많으니, 공책 맨 위에 128부터 1까지 자리값을 먼저 적게 하고 왼쪽부터 빼 나가게 하세요. 오버플로는 미리 이름을 알려 주지 않는 편이 좋습니다. 255에서 「+1」을 눌러 0이 나오는 것을 보고 「수가 어디로 갔지?」 하고 물을 때 설명하면 오래 기억합니다. 혼자 공부한다면 손가락 다섯 개를 자리값 1, 2, 4, 8, 16으로 정하고 접은 손가락은 0, 편 손가락은 1로 해서 0부터 31까지 세어 보세요.
  1. 1011은 십진수로 얼마입니까?
  2. 37을 이진수로 쓰세요(앞의 0은 빼고).
  3. 1100100은 십진수로 얼마입니까?
  4. 8비트로 서로 다른 패턴을 몇 가지 만들 수 있습니까?
  5. 바이트 하나에 담을 수 있는 가장 큰 수는 얼마입니까?
  6. 4비트로는 패턴이 몇 가지입니까?
  7. 서로 다른 것 1000개에 번호를 붙이려면 몇 비트가 필요합니까?
  8. 이진수로 셀 때 0111 다음은 무엇입니까? 네 자리로 쓰세요.
  9. 다음 중 홀수는 어느 것입니까?
    • 10011
    • 10010
    • 11110
    • 100
  10. 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