-
비트와 바이트, 문자 인코딩 개념 정리IT/IT 기초(IT기사, 알고리즘, Linux 등) 2024. 11. 11. 20:33
컴퓨터가 처리할 수 있는 가장 작은 단위의 정보를 나타내는 것이 bit 이다.
컴퓨터가 이해할 수 있는 정보단위는 0과 1이다.
bit는 0또는 1을 담을 수 있다.
1bit로 2가지의 경우(0또는 1)를 나타낼 수 있으므로 2bits로 4(2*2)가지의 경우를 나타낼 수 있다.
8bits(1byte)로는 256가지의 경우를 나타낼 수 있다.
컴퓨터 프로그램에서는 1byte를 가장 기본 단위로 사용한다.
사람들이 미리 약속해둔 테이블을 참고하여 문자열을 2진수로 표현할 수 있는데,
아스키코드 테이블은 1바이트로 문자열을 표현한다.
하지만 아스키코드 테이블로는 한국어 등의 문자열을 표현할 수 없는 한계점이 있다.
모든 문자열이 포함된 것이 바로 유니코드이다.
유니코드는 2bytes 혹은 그 이상의 바이트로 문자열을 표현한다.
다양한 나라의 언어부터 심볼과 이모지 등을 표현할 수 있다.
프로그래밍에서 변수를 선언할 때,
데이터 타입에 따라서
메모리에 얼마나 크게 공간이 확보되는지 정해진다.
자바에서 정수를 표현할 때, 대표적인 자료형은 아래와 같다.
char 타입 같은 경우에 1byte(-128~127)
short는 2byte( -215 ~ 214 혹은 -32,768 ~ 32,767)
int는 4byte( -231 ~ 230 혹은 2,147,483,647)
long 8byte( -263 ~ 262 혹은 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
다음으로 영상 등을 주고받을때 사용할 수 있는 큰 데이터 단위를 알아보자.
1KB = 1024byte (k는 10³을 말하지만 2진수의 경우, 대문자 K로 나타내어 2¹⁰=1024가 된다.)
1MB = 1024KB = 1,048,576byte
1GB = 1024MB 컴퓨터 메모리 또는 파일 크기 등을 나타낸다.
1TB = 1024GB 대용량 기억 장치의 단위를 나타낸다.
다음으로 이어서 PB(페타바이트), EB(엑사바이트)가 있다.
문자열을 바이너리 형태로 나타내기 위해
규격을 약속한 것이 텍스트 인코딩이다.
언어마다 다양한 텍스트 인코딩이 존재했다.
서로 다른 인코딩 규격 때문에 글자가 깨지는 현상이 빈번했다.
이것을 해결하기 위해 UTF-8 인코딩(가변길이 유니코드 인코딩)이다.
길이가 정해지지 않고 필요에 의해 길어질 수 있다.
아스키코드(~1byte) 뿐 아니라 유니코드(~4bytes)를 나타낼 수 있다.
UTF-16도 가변길이 유니코드 인코딩인데, 기본적으로 2byte를 사용한다.
따라서 메모리 낭비를 막기 위해 UTF-8이 더 통상적으로 사용된다.
'IT > IT 기초(IT기사, 알고리즘, Linux 등)' 카테고리의 다른 글
네트워크의 기본 구성요소 (0) 2024.11.13 스레드의 종류(하드웨어 스레드, 커널 스레드, 유저 스레드) (0) 2024.11.12 [Linux] 데몬이란? systemd 프로세스란? (0) 2020.06.15 [Linux] df, du 명령어 사용법 (디스크 여유 공간, 사용량 확인) (0) 2020.06.03 [Linux] 내가 보려고 정리하는 Ubuntu 단축키 & 명령어 (맥 기준) (0) 2020.06.03