1Byte는 왜 8bit일까?
계산하기 편한 10진수를 놔두고 8bit를 1byte로 약속한 것일까?
수학을 배우면서 10진수에 익숙해진 우리들은 한 번쯤 궁금했던 질문일 것이다.
어느정도의 배경 지식이 받쳐준다면 이 질문에 대한 답을 이해하기 쉬울 것이다.
예전 컴퓨터를 찾아보면 byte를 4~10bit로 사용되던 것을 볼 수 있는데, 현대에 와서는 '1옥텟(8bit)'를 기준으로 삼는다.
단순한 계산부터 I/O기능을 처리하기 위해서는 작은 공간만 있어도 충분했지만, 문자를 처리하게 되면서 효율적인 공간 활용을 위해 적절한 크기를 찾아야만 했다. 지금은 가정용 컴퓨터만 봐도 256GB~1TB크기의 저장공간을 사용하고 있지만 당시에는 MB단위도 귀중하게 쓰였기 때문에 1bit의 공간도 소중하게 쓰여야 했다.
예로부터 byte의 단위는 한 문자를 저장할 수 있는 최소 공간의 크기로 정의되어 왔는데, 컴퓨터 구조의 발전이 주로 영문권에서 이뤄졌기 때문에 영어와 숫자등 문자를 효율적으로 저장할 수 있는 크기가 7bit(128개)인데 처리의 효율성을 고려해 1bit를 추가한 8bit(256개)가 주로 사용되게 된다. 실제로 ASCII코드는 7bit를 기준으로 숫자와 영문자 모두 표현할 수 있으며, 추가된 1bit는 특수 문자, 오류검출코드(Parity bit) 등으로 사용되고 있다.
* Byte : 초기에는 Bite(한입)으로 쓰였지만 bit와의 혼동을 피하기 위해 Byte로 정의됐다.
* 옥텟 : 초기 컴퓨터들은 1 바이트가 꼭 8 비트만을 의미하지 않았으므로, 8비트를 명확하게 정의하기 위해 옥텟이라는 용어가 필요했지만 지금은 1byte가 8bit라는 것이 대중화 되었기 때문에 잘 사용되지 않는다.
* ASCII 코드 : 아스키 코드는 1963년 미국 ANSI에서 표준화한 정보교환용 7비트 부호체계이다. 000(0x00)부터 127(0x7F)까지 총 128개의 부호가 사용된다.
* Parity Bit : 8bit 중 7bit를 검사하여 1의 개수가 홀수이면 마지막 비트는 1로, 1의 개수가 짝수이면 마지막 비트는 0으로 정해 전송 도중 신호가 변질된 것을 수신측에서 검출해낼 수 있도록 하였다.
'Thinking > data structure' 카테고리의 다른 글
B-트리 (B-Tree) (0) | 2023.10.03 |
---|---|
레드 블랙 트리 (Red-Black Tree) (0) | 2023.10.02 |
이진 탐색 트리 (BST : Binary Search Tree) (0) | 2023.10.02 |
자료구조 트리(Tree) 구조 (0) | 2023.09.22 |
메모리 구조 (코드영역, 데이터영역, 힙영역, 스택영역) (0) | 2022.12.20 |