최근 수정 시각 : 2024-03-27 13:09:47

비트(정보 단위)



||<-4><tablealign=center><tablebgcolor=#fff,#191919><table width=500><bgcolor=#cccccc,#555555> 컴퓨터의 정보 단위 - 십진 접두어 ||
[math(\small 2^{-3})]
비트
Bit (b)
[math(\small 1)]
바이트
Byte (B)
[math(\small 10^{3})]
킬로바이트
Kilobyte (KB)
[math(\small 10^{6})]
메가바이트
Megabyte (MB)
[math(\small 10^{9})]
기가바이트
Gigabyte (GB)
[math(\small 10^{12})]
테라바이트
Terabyte (TB)
[math(\small 10^{15})]
페타바이트
Petabyte (PB)
[math(\small 10^{18})]
엑사바이트
Exabyte (EB)
[math(\small 10^{21})]
제타바이트
Zettabyte (ZB)
[math(\small 10^{24})]
요타바이트
Yottabyte (YB)
[math(\small 10^{27})]
론나바이트
Ronnabyte (RB)
[math(\small 10^{30})]
퀘타바이트
Quettabyte (QB)
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px)"
{{{#!folding [이진 접두어 펼치기 · 접기]
{{{#!wiki style="margin:-5px -1px -11px"
이진 접두어
[math(\small 2^{10})]
키비바이트
Kibibyte (KiB)
[math(\small 2^{20})]
메비바이트
Mebibyte (MiB)
[math(\small 2^{30})]
기비바이트
Gibibyte (GiB)
[math(\small 2^{40})]
테비바이트
Tebibyte (TiB)
[math(\small 2^{50})]
페비바이트
Pebibyte (PiB)
[math(\small 2^{60})]
엑스비바이트
Exbibyte (EiB)
[math(\small 2^{70})]
제비바이트
Zebibyte (ZiB)
[math(\small 2^{80})]
요비바이트
Yobibyte (YiB)
[math(\small 2^{90})]
로비바이트
Robibyte (RiB)
[math(\small 2^{100})]
퀘비바이트
Quebibyte (QiB)
취소선: 공식적으로 제정된 바 없는 가칭. }}}}}}}}}
우상단 숫자는 바이트를 기준으로 한 상대값이다.
[math(\color{#0F0} \begin{matrix} \tt 011100000110001\\\tt100101101111100\\\tt100010100101011\\\tt100101001100010\\\tt110010101110000\\\tt000100101011000\\\tt111100110111101\\\tt010011111100110\end{matrix})]
비트 형식으로 저장된 데이터
1. 개요2. 어원과 연속적 정보량 단위3. 현재4. n비트5. 기타6. 둘러보기

[clearfix]

1. 개요

Binary Digit, Bit / Shannon

정보라고 취급할 수 있는 가공된 디지털 데이터(자료)들을 나타내는 최하위 단위이며, 컴퓨터 용량이나 프로그램 처리능력의 최소 단위로 사용한다.

2. 어원과 연속적 정보량 단위

비트를 정보량의 단위로써 본격적으로 활용한 것은 1948년 클로드 섀넌이 발표한 논문 A Mathematical Theory of Communication이다. 이 논문은 정보이론이라는 학문을 개척한 중요한 논문으로, 여기서 정보량으로써 제시된 개념인 엔트로피의 단위로 비트(bit)라는 용어를 사용하며 시작되었다. 용어 자체는 벨 연구소에서 컴퓨터를 이용한 통계학 관련 연구를 하던 존 와일더 투키(John Wilder Tukey) 박사가 1947년 binary digits의 축약어에서 고안한 것으로 섀넌은 해당 논문에서 이를 언급하였다. 이 비트는 경우의 수, 또는 확률의 역수에 대해 정수 2를 밑으로 취한 로그(수학)값을 취한 것이며, 사실상 정보분야에서 실용화된 것이다. 이 때에는 이산적인 단위가 아닌 양의 실수 값을 가질 수 있고, 따라서 현재 사용하고 있는 비트라는 단위와는 다른 형태를 보인다. 가령 확률이 2/3이라면, 그 정보량(엔트로피)은 약 0.58비트에 해당되며, 15가지 경우의 수를 정보량(엔트로피)으로 표현하면 약 3.91비트가 되는 등, 연속적인 값을 가질 수 있다. 이 값은 정수 2를 밑으로 취한 것이고, 로그의 밑에 따라서 자연로그의 밑 e를 쓰는 내트(nat), 밑을 10으로 하는 상용로그를 기준으로 하는 하틀리(Hart, hartley) 또는 디트(dit, decimal digits) 등으로도 표기 가능하다.

훗날 정보이론을 바탕으로 컴퓨터 등 논리화된 디지털 정보를 다루는 실재하는 기기가 등장하였고, 디지털 데이터를 처리하는 과정에서 이산적으로 처리를 하게 되면서 비트라는 단위를 아예 01 둘 중 하나를 나타내는 이산적인 단위로 고정시킴에 따라, 본래의 양의 실수로 표기된 엔트로피 비트와 이산적으로 표기되어 저장된 데이터의 양을 나타내는 비트[1] 간의 모호성이 생기게 되었다. 이에 섀넌이 제시하였던 엔트로피 단위 비트를 2008년 IEC 80000-13 표준안에 따라 섀넌(shannon, Sh)이라는 단위로 표기하기로 하였다. 현재는 정보이론 분야에서 비이산적인 비트를 사용한다면 관례상으로 사용하는 것이며, 정식으로는 하술할 디지털 데이터의 양을 표기하는 이산적인 값으로만 사용해야 한다. 가령, 상술한 예제의 경우 각각 약 0.58섀넌과 약 3.91섀넌으로 표기하는 것이 표준이다.

3. 현재

현재의 비트는 컴퓨터가 처리하는 이산 데이터의 양을 표기하는 단위로, 이진법(binary) 표기 시 하나의 자릿수, 즉 0 또는 1을 갖는 값 하나를 의미하는 단위다.

이 비트는 이산적으로 양을 측정하는 단위기 때문에 0 또는 양의 정수로만 측정된다. 즉 0과 1 사이의 값을 가질 수 없으며,[2] 상술한 표준안에 따라 비이산적인 정보량의 단위를 섀넌으로 변경함에 따라, SI 단위의 이산 접두어에서 1보다 작은 밀리, 마이크로 등의 접두어에 대응하는 이산 접두어는 정의되지 않게 되었다.

컴퓨터 종류와 운영체제에 관계없이 모든 종류의 디지털 데이터는 실제로는 아날로그 전기 신호로 구현된다. 아날로그 신호로 변환되어 저장된 데이터를 다시 디지털화, 즉 이산적으로 변환하는 과정에서 0과 1의 비트로 처리되고 저장되는 것이다. 기술에 따라서는 ON/OFF 이외에도 전위차를 쪼개서 데이터를 압축해 넣는[3] 방법도 있으나, 빠른 처리 속도가 필요하거나 오류가 적어야 되는 일반적인 프로세서 기준으로는 0과 1로 이산화(디지털화)한다. 애초에 디지털 데이터 자체가 아날로그를 0과 1로 이산화한 것이며, 숫자, 문자, 사진, 음성, 영상 등 어떤 형태이든 0과 1로 변환하여 표현함으로써 결국에는 논리적으로 0과 1로 이루어지도록 만든 것이다. 그래서 비트는 그 디지털 데이터를 더 이상 쪼갤 수 없는 단위까지 쪼갠 단위로 가장 원시적인 단위로 쓰이는 것이다.[4]

비트가 8개 모이면 오늘날 대부분의 컴퓨터가 데이터를 처리하는 단위인 1 바이트가 된다. 물론 많은 프로세서에서는 한 번에 바이트 이상의 단위를 처리하더라도, 비트 단위로의 연산도 지원하고 있기에 비트 단위의 연산이 아예 불가능한 것 은 아니다.

4. n비트

컴퓨터의 처리 단위
4비트 8비트 16비트 32비트 64비트 128비트

쉽게 말해 [math(n)]비트 = 2의 [math(n)]제곱([math(2^n)])이다. 다만 이것이 무엇(용량, 포인터 길이, 전송속도 등)을 표현하느냐에 따라 의미가 달라질 뿐이다.

보통 컴퓨터에서 32비트, 64비트 등으로 이야기하는 것은 CPU에서 한 번에 얼마나 많은 비트를 처리할 수 있는지를 가리킨다. 대체적으로 CPU 내부에서 처리하는 비트 수와 외부 전송시 처리하는 비트수는 같지만, 다른 경우도 있다. 16비트 초창기인 IBM PC IBM PC XT에 사용된 8088 CPU는 외부 전송은 8비트이지만 내부 처리는 16비트로 동작하고, 32비트의 전성기에 등장한 펜티엄 시리즈는 반대로 외부 전송은 64비트까지 지원하지만 내부 처리는 32비트로 동작한다.

과거 게임기 롬팩/기판 용량이 4Mb, 8Mb 하는 것은 흔히 사용하는 메가바이트(MB)가 아닌 이 메가비트이다. 그렇기 때문에 MB가 아닌 Mb(혹은 Mbit)로 적는 것이 원칙. 메가비트를 메가바이트로 환산하는 방법은 비트-바이트와 마찬가지로 나누기 8. 옛날 콘솔 제작사들은 이 비트가 높으면 무조건 좋은 것처럼 광고했지만 현실은 차세대기용도 쓰레기 게임이 많다. 단지 포텐셜의 차이일 뿐 용량과 게임 완성도는 별개인 것과 같은 이유.

인터넷 광고에서 흔히 쓰이는 초당 100 Mbps니 하는 것도 역시 bit 단위다. 착각하지 말자. 100 Mbps라고 하면, 즉 8로 나누면 12.5MBps(Mega Byte per second)이니 1초에 100 메가바이트가 전송되는것이 아니라 최대 12.5메가바이트를 전송 할수있다는 뜻. 이론상 수치라서 보통 가정집에서 10메가바이트 정도가 나오고, 환경이 좋다면 11~11.8메가바이트가 가능하다[5]. 대략 8~10으로 나누면 편하다. 데이터 통신 계열에서 바이트가 아닌 비트 단위를 쓰는 것은 바이트로 묶어 논리적으로 계산하는 컴퓨터 기준의 계산이 아닌 전기 신호 처리 단위의 계산, 즉 추상화 단계가 하나 내려간 논리와 물리 사이의 관점을 고려해 사용하는 것이다. 실용적인 범위에서 모호함이 생길 수 있기 때문에, 일반적인 표기에서 초당 (접두)비트에는 Xbps를, 초당 (접두)바이트에는 XB/s를 사용하여 비트 표기에서만 per를 사용하는 것이 일반적이다.

RAM/주소할당 문제 문서에도 적혀있지만, 2010년대 64비트의 시대라고 봐도 무방하다. 큰 호환성 문제가 있는 것도 아니므로 램이 4GB이상이라면 64비트 운영체제를 설치하도록 하자. 64비트 운영체제가 처음 도입된 이후 한동안은 과도기로써 응용프로그램(게임, 유틸리티 등)들이 32비트 버전과 64비트 버전을 둘 다 내놓았으나, 2010년대 중반에 들어서 64비트가 아니면 실행이 안 되는 응용프로그램들이 점점 늘어나고 있다.

5. 기타

비트와 바이트의 중간 단위로 니블(nibble)이 있다. 1니블은 4비트이므로, 2니블은 1바이트가 된다. 1니블은 16진수 한 자리에 해당된다.

프로그래밍에 있어 비트 연산을 배워두면 무작위로 생성되는 암호 등을 통해 간단한 보안 시스템을 만들 수 있다. 물론 해당 암호를 생성하는 암호의 키는 물리적인 공간에 스티커로 붙여두든가 해서 반드시 자기가 책임져야 한다.

사족으로 비트 수가 늘어날때마다 화질이 좋아지거나 현실에 가까워지는 밈도 있다. AVGN 타이거 일렉트로닉스 편에서 나온 것이다.

6. 둘러보기




파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 문서의 r346에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r346 ( 이전 역사)
문서의 r ( 이전 역사)

[1] 엔트로피 비트가 안 쓰이는 것은 아닌데, 특히 압축 등의 분야에서의 가장 이상적인 압축은 데이터의 양(이산 비트)이 엔트로피 비트와 동일한 것으로 본다. 다만 이상적인 경우가 그렇다는 것이며, 실제 압축 기술은 대부분 그 정도까지를 목표로 하지 않는다. [2] 양자컴퓨터에도 0과 1이 동시에 존재(처리/저장)하는 것이지, 그 사이 값을 가지는 게 아니다. 일부 과학잡지에서 0과 1을 오간다는 서술을 하는데 혼돈의 여지가 있다. [3] SSD의 MLC, TLC 등이 관련된 개념이다. [4] 물론 실제로 비트 표기는 널리 쓰이지 않는다. 이진법 표기는 자릿수가 불필요하게 길어지며, 오늘날의 컴퓨터는 대부분 8비트를 하나로 묶은 바이트 단위를 기본으로 쓰기 때문에, 인간의 편의상 16진법으로 각 바이트를 43, 5B, F3, 00, 1A처럼 쓰는 경우가 대부분이다. 그럼에도 불구하고, 더 이상 쪼갤 수 없는 원시적인 단위로의 0과 1만을 쓰는 비트 단위는 한 단계 낮은 추상화 단계, 즉 논리와 물리의 중간에서 여전히 유효하게 사용되기도 한다. 가령 데이터 통신 등의 전송 속도는 주로 컴퓨터에서 논리적으로 처리되는 초당 바이트 단위가 아닌 아날로그 신호를 이산화한 수준인 초당 비트 단위로 표기되는 등에서 그 흔적을 볼 수 있다. [5] Microsoft Windows는 1KB를 1024Byte로 계산하기 때문에 100Mbit를 환산하면, 11.92MB가 나온다. 이론 속도 그대로 나오는 경우도 허다하다.

분류