바이트

Byte (기호 B). 정보량정보엔트로피단위비트정수 배로 정의된다. 바이트의 정의는 시대에 따라, 그리고 기계에 따라 다를 수 있으나 현재 대부분의 컴퓨터에서 1바이트는 8비트이다.

1바이트 = 8비트?

바이트의 가장 중립적인 정의는 "주소로 표현 가능한 최소 단위"일 것이다. 예를 들어서 x86 아키텍처에서 8비트보다 작은 단위를 개별적으로 표현하는 방법은 없으므로 x86에서 1바이트는 8비트가 된다. 고대(?)의 컴퓨터에서는 1바이트가 4, 5, 6, 심지어 9비트인 경우도 있었으며 따라서 1바이트가 8비트라는 것은 항상 참은 아니다.

현대에 들어서 1바이트가 8비트로 통용되는 이유는 아마도 8이 2의 거듭제곱이기 때문일 것이다. 많은 기본 자료형(이를테면 IEEE 754의 실수 자료형) 크기가 2k비트 꼴의 형태로 나타내지기 때문에 2의 거듭제곱이 아닌 크기는 사용이 많이 불편할 것이다. 물론 4나 16도 가능하긴 하지만, ASCII 같은 통용 문자 집합을 담을 수 있는 가장 작은 크기는 아마도 8비트일테니까.

따라서 현대 컴퓨터에서 1바이트를 8비트로 생각하는 게 아주 틀린 가정은 아니다. 하지만 ISO C에서는 1바이트(즉, char의 크기)가 8비트 이상이어야 함을 규정하고 있지 딱 8비트여야 함을 규정하고 있는 건 아니고, 앞으로 8비트보다 큰 바이트가 나타나면1) 네트워크 프로그래밍 같은 거 할 때 많이 골을 썩여야 할 가능성도 있다.

파생 단위

대다수의 단위가 국제 단위계 접두어만을 사용하는 것과 비교해서, 바이트는 비트와 함께 ISO/IEC 이진접두어가 사용되는 얼마 안 되는 단위 중 하나이다. 그렇다고 SI (십진) 접두어를 안 쓰는 것도 아니기 때문에 혼선이 있는데, 근래 들어 IEEE 1541, IEC 60027 그리고 ISO IEC 80000 표준 등에서 둘을 완전히 가르려고 시도하고 있으므로 둘 사이의 차이를 정확히 알아 두는 것이 좋을 것 같다.

1바이트가 몇비트인지 헷갈리는 경우를 방지하기 위하여 일부 비영어권 국가나 저수준 네트워크 프로토콜 등에서는 옥텟(octet, 기호 o)을 항상 8비트로 정의하여 쓰는 경우도 있다.

1) 실제로 몇몇 사람들은 유니코드의 도래와 함께 16비트 바이트의 가능성을 제시한 바가 있었다.

도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-05-30 18:25 | 외부 편집기