비트는 컴퓨터에서 사용하는 데이터의 최저 단위입니다. 컴퓨터는 전기로 동작하는 기계이기 때문에 에니악 시절부터 지금까지도 컴퓨터가 인식할 수 있는 데이터는 오로지 '0'과 '1'뿐입니다. 전류가 흐르면 '1' 흐르지 않으면 '0' 이렇게만 인식할 수 있습니다. 그래서 초창기 언어의 일종인 기계어는 2진법으로 되어 있던 것입니다.
하지만 사용자가 쓰기에는 '0'과 '1'로만은 쓸수가 없습니다. 'a'도 있고 'k'도 있으니까요. 그래서 비트 여러개를 조합해서 글자를 사용할 수 있는 단위를 만들기 시작하였습니다. 그 결과 ASCII(아스키)라는 코드가 정의되었고, 8개의 비트를 하나로 묶어 사용할 수 있는 최대 문자, 곧 2의 8제곱으로 256개의 문자를 만들게 된 것입니다. 그리고 이 단위를 글자를 저장할 수 있는 최저 단위라 하여 'byte'라 하게 된 것입니다. 그리고 나중에 유니코드가 제안될 때에는 2개의 바이트를 사용하여 256×256=65,536개의 문자를 사용할 수 있게 되었습니다.
그렇다면 왜 1킬로바이트는 1,000이 아닌 1,024이냐도 여기서 찾을 수 있는데요, 바이트란 단위 자체가 2진법인 비트에 근거하고 있기 때문이죠. 10진법으로 1,000은 10의 3제곱이지만, 2진법으로는 어떤 방법으로도 자승의 계산식으로는 1,000을 만들 수가 없습니다. 그 대신 2의 10제곱은 1,024로 1,000에 가장 가까운 숫자일 수 있던 것입니다.
이러한 차이 때문에 현재 우리가 하드디스크를 살 때 가장 많은 속임수를 당합니다. 실제로 80GB 하드디스크를 살 경우 업체의 홍보와 우리가 쓰는 것과 상당한 차이가 나게 되는 것이죠. 업체는 단순하게 1,000단위로 끊어서 제품을 선전하고, 운영체제는 철저하게 1,024 단위로 끊어서 계산해주기 때문에 80GB하드가 75GB가 되는 것입니다.
CPU의 동작속도의 경우는 2진법에 기초한 단위가 아니기 때문에 1,000단위로 끊어집니다. ^^