TL;DR
1. 8bit가 1byte인 이유
- 인간은 정보를 글자로 저장함.
- 컴터는 정보를 0 혹은 1로 저장함.
- 근데 컴터에는 인간의 정보를 저장해야 함.
- 0 혹은 1 이 두 가지 구분 한 세트 가지고 수많은 종류의 글자를 저장한다? 택도 없음.
- 컴터에서 문자 하나를 기억하기 위해, 최소한으로 필요한 0 or 1 표시 가능한 bit의 개수가 8개임.
- 그니까 8bit는 인간에게 굉장히 의미있는 단위가 되는 것임.(우리 컴터 베이비가 드디어 알파벳을 뗐어요...!)
- 따라서 이 8bit 한덩이를 1 byte라고 정해서 쓰게 됨!
2. 2진수인 8bit(1byte)를, 표현할 때는 16진법 쓰는 이유
- 효율적임.
- 8bit를 2진수로 쓰면 8자리 차지.
- 16진수로 쓰면 2자리 차지.- 쏘 심플 앤 클리어... 이과 만세
중고등학교 때 무지성으로 외운 컴퓨터 용량 단위
8bit = 1byte
1000byte = 1KB
1000KB = 1GB
...
분명 왜 bit만 8인지 궁금했지만
국영수도 아닌 과목 질문하면
바보되는 시절이었으니 넘어갔다.
이젠 독학이니까
내맘대로 질문하고
내마음껏 답을 찾아
내식대로 정리한다.
(주의!)
내가 답으로 향하는 여정은 매우 멀고 험하다.
본인이 비전공자이거나
비전공자의 뇌가 궁금한 사람이라야
끝까지 읽을 수 있을듯...
1. bit부터 이해해보자
bit는 컴터의 메모리가
정보를 저장하는 가장 작은 단위이다.
얼마나 작냐면
0과 1
이 두가지 중 하나만 저장할 수 있는 수준으로 작음.
2. 그래서? 컴터의 정보저장 최소 단위 알아서 어쩌라고?
아니...
컴터가 아는건 0하고 1밖에 없잖슴?
알파벳이 0, 1 두 개뿐이라는 말 임.
근데
0, 1로 어떻게 인간보다 똑똑한 AI까지 될 수 있는지
궁금하지 않음?
자,
알파벳이 두 개라고 해서
아는 것도 두 개일까?
아님!!
0과 1을 조합해서
수십 수천 수억개의 단어를 만들 수 있음.
그저 늘어놓아야 하는 길이가 길 뿐임.
단어 뿐이겠음?
모든 상황에 대한 경우의 수 또한
0과 1의 조합으로 표현할 수 있음.
3. 자, 그럼 컴터에게 필수적인 건 무엇일까?
넉넉한 저장 공간임.
그 수많은 0과 1을 늘어놓을만큼의
충분한 공간이 있어야
천문학적인 경우의 수를
표현하고, 저장하고, 계산하고..
하는 인간 같은 일을 할 수 있음.
그런데
자원은 한정적이잖슴?
우주 끝까지 0, 1을 늘어놓을 수 없으니...
'어떻게 하면
최대한 적은 경우의 수를 가지고,
최대한 많은 일을 처리할 수 있을까'를
고민하는게
컴터를 만들고 다루는 사람에겐
가장 중요한 일임.
즉 개발자에게는 자원 관리가 중요함!
4. 그래서 우리가 bit, Byte를 배우는 것임
저장 공간, 즉 메모리를 관리하려면
메모리 관리 단위를 정해놔야
잘 정리가 되니까!
bit라는 개념을 만들고
Byte를 또 만들고 하는 것임
bit는
0 혹은 1을 저장할 수 있는,
컴터 언어를 저장할 최소한의 공간.
이 bit 8개로 이루어진
1Byte는
인간 언어인 문자 하나를 컴터 언어로 저장할 수 있는,
다시말해,
0과 1을 조합하여 만든 인간 문자를
저장할 수 있는 최소한의 공간임.
5. 근데 왜 하필 8bit냐고?
2^8(256)정도의 가짓수가 되어야
인간 문자 각각을 구분하여 표현할 수 있으니까 그러함.
그래서~
8bit 는 1Byte임! 🥳🎉
여기까지 오시느라 수고하셨습니다...
PS. 잠깐...
근데 왜 2진법으로 쓰면 될 bit 체계를
굳이 16진법으로 써서 머리아프게 하는 것임?
2진법으로 1Byte(8bit)를 차지하는 어떤 수를 표현하려면
2^7, 2^6, 2^5, 2^4, 2^3, 2^2, 2^1, 2^0
8자리나 써야함
근데 16진법으로 쓰면
16^1, 16^0
2자리만 쓰면 끝남
너무나 효율적임!!
그래서 16진법으로 표기함.
결론,
효율이 전부다.
'CS Fundamentals > Basics' 카테고리의 다른 글
[CS:APP-제1장] 공유주방과 중국집 창업으로 이해해보는 프로세스와 운영체제 (0) | 2024.01.19 |
---|