비트란 무엇인가요?
비트(bit)는 binary digit(이진 숫자)의 줄임말로, 컴퓨팅에서 데이터의 가장 작은 단위이며 0 또는 1 중 하나의 값을 가집니다. 컴퓨터는 숫자와 텍스트부터 이미지와 프로그램까지 모든 정보를 비트의 연속으로 저장하고 처리합니다.
업데이트: 2026년 9월 24일
비트를 하나 더할 때마다 표현할 수 있는 값의 수가 두 배가 돼요. 8비트가 1바이트이고, 0부터 255까지 256가지 값을 나타내요.
전등 스위치는 꺼져 있거나 켜져 있어요. 비트는 같은 개념을 숫자로 적은 거예요. 0 또는 1이죠. 비트 하나는 예 아니면 아니요로 답하는 질문 하나에만 답할 수 있지만, 비트를 나란히 놓으면 비트가 하나 늘 때마다 만들 수 있는 패턴의 수가 두 배가 돼요. 여덟 개면 키보드의 어떤 글자든 나타낼 수 있고, 수십억 개면 영화 한 편을 담아요.
비트는 어떻게 저장되나요
비트는 하드웨어가 안정적으로 설정하고 다시 읽을 수 있는 두 가지 상태를 가진 것이면 무엇이든 돼요. 장치마다 다른 물리적 효과를 사용해요.
- 프로세서: 높은 전압 또는 낮은 전압에 있는 전선이나 트랜지스터.
- RAM: 각 메모리 셀 안의 아주 작은 커패시터가 충전되어 있거나 비어 있음.
- 하드 디스크: 디스크의 작은 영역이 한쪽 방향 또는 반대 방향으로 자화됨.
- 플래시 메모리(SSD, USB 메모리): 셀에 가둬 둔 전하. 최신 플래시는 여러 전하 수준을 사용해 셀 하나에 3비트나 4비트를 저장해요.
열 가지가 아니라 두 가지 상태를 쓰는 이유는 신호에 잡음이 있어도 두 상태는 구분하기 쉽기 때문이에요. 회로는 전압이 열 단계 중 어디에 가장 가까운지가 아니라, 높은지 낮은지만 판단하면 돼요.
비트로 수를 세는 법
비트는 2진법으로 세요. 각 자리는 오른쪽 자리의 두 배 값을 가져요. 1, 2, 4, 8, 16 이런 식이에요. 비트 1101은 8 + 4 + 0 + 1, 즉 13을 뜻해요.
비트가 n개면 서로 다른 패턴이 2ⁿ개 있으므로, 비트가 하나 늘 때마다 범위가 두 배가 돼요.
1 bits -> 2 values
2 bits -> 4 values
4 bits -> 16 values
8 bits -> 256 values
16 bits -> 65,536 values
32 bits -> 4,294,967,296 values
64 bits -> 18,446,744,073,709,551,616 values
이 숫자들은 어디에나 나타나요. 8비트로 저장된 색상 채널에는 256단계가 있어서 RGB 값이 0부터 255까지예요. IPv4 주소는 32비트이므로 약 43억 개가 있고, 그래서 IPv6는 128비트로 옮겨 갔어요. 부호 있는 32비트 정수의 최댓값은 2,147,483,647이며, Java에서 여기에 1을 더하면 -2,147,483,648로 돌아가요.
Python은 bin()과 int()로 숫자와 비트를 서로 변환하며, 진법 변환기는 브라우저에서 같은 일을 해요.
0b1101
13
4 bits needed
0b100
0b111
0b1001
0b1100
개별 비트 다루기
위 예제 후반부의 연산자들은 비트 연산자예요. 각 비트 자리를 따로 처리해요. &(and)는 두 수 모두 1인 자리만 남기고, |(or)는 어느 한쪽이라도 1인 자리를 남기며, ^(xor)는 정확히 한쪽만 1인 자리를 남기고, <<와 >>는 모든 비트를 왼쪽이나 오른쪽으로 옮겨요. C, Java, JavaScript, Python 모두 같은 기호를 써요.
프로그램은 이 연산자로 예 아니면 아니요인 설정 여러 개를 숫자 하나에 담아요. 설정 하나에 비트 하나씩이에요. Unix 파일 권한이 이렇게 동작해요. 읽기, 쓰기, 실행이 비트 세 개이므로 7(이진수 111)은 셋 모두를, 5(이진수 101)는 읽기와 실행을 뜻해요. chmod 755가 설정하는 것이 바로 이거예요. 이 설정 하나하나가 불리언이며, 불리언에는 비트 하나면 충분해요.
텍스트 속의 비트
텍스트는 숫자로, 숫자는 비트로 저장돼요. 각 문자에는 코드가 있고, 그 코드가 이진수로 기록돼요.
H 72 01001000
i 105 01101001
! 33 00100001
여기서 각 문자는 8비트, 즉 바이트 하나를 차지해요. ASCII는 문자당 7비트만 필요하지만 컴퓨터는 바이트 단위로 저장해요. 텍스트 이진수 변환기에 아무 텍스트나 입력하면 그 비트를 보여 줘요.
일상 속 숫자의 비트
익숙한 숫자 두 가지가 비트 단위로 세요. 인터넷 속도는 초당 비트로 측정해요. 100 Mbps 연결은 매초 1억 비트를 전송하는데, 파일 크기는 8비트짜리 바이트로 측정하므로 이는 초당 12.5메가바이트예요. Mbps의 소문자 b는 비트, MB의 대문자 B는 바이트를 뜻해요. 바이트 페이지에서 두 단위를 자세히 비교해요.
다른 하나는 프로세서와 운영체제에 붙는 "64비트"라는 표시예요. 프로세서가 한 번에 다루는 숫자와 메모리 주소의 크기를 뜻해요.
비트는 오류도 잡아내요. 패리티 비트는 1의 개수가 항상 짝수가 되도록 비트 묶음에 추가하는 비트 하나예요. 전송 중에 비트 하나가 뒤집히면 개수가 홀수가 되고, 받는 쪽은 데이터가 손상되었음을 알아요. 체크섬은 같은 개념을 파일 전체로 확장해요.
비트라는 말의 유래
"비트"는 binary digit(이진 숫자)의 줄임말이에요. 클로드 섀넌은 1948년 논문 "A Mathematical Theory of Communication"에서 이 단어를 사용하며 존 튜키가 만든 말이라고 밝혔어요. 섀넌의 정보 이론에서 1비트는 측정 단위이기도 해요. 공정한 동전 던지기처럼 두 결과가 똑같이 일어날 법한 질문의 답에 담긴 정보의 양이에요.
다음 단계
비트는 거의 항상 여덟 개씩 묶어서 다루므로, 다음으로 비트와 바이트 비교가 담긴 바이트란 무엇인지 읽어 보세요. 불리언이란 무엇인지는 참 또는 거짓이라는 비트 하나만큼의 의미가 프로그램의 결정을 어떻게 이끄는지 보여 주고, 체크섬이란 무엇인지는 비트가 손상된 데이터를 어떻게 감지하는지 보여 줘요.