컴퓨터의 정보 단위
0과 1을 나타내는 가장 작은 정보 단위를 비트라고 하며, n비트는 2ⁿ가지 정보를 표현할 수 있다.
1바이트(1byte) | 8비트(8bit) |
1킬로바이트(1kB) | 1,000바이트(1,000kB ) |
1메가바이트(1MB) | 1,000킬로바이트(1,000MB) |
1기가바이트(1GB) | 1,000메가바이트(1,000GB) |
1테라바이트(1TB) | 1,000기가바이트(1,000TB) |
문자집합과 인코딩
문자 집합
컴퓨터가 인식하고 표현할 수 있는 문자의 모음이다. 컴퓨터는 문자 집합에 속해있는 문자를 이해할 수 있다.
EX) 문자집합 = [a, b, c, d, e]인경우
a → 이해 가능
f → 이해 불가능
하지만 문자 집합에 속해있어도 0과 1로 변환해야 컴퓨터가 이해할 수 있다 = 문자 인코딩
이진법과 십육진법
이진법은 0과 1만으로 숫자를 표현하는 방식으로 하나의 이진수는 하나의 비트를 나타낼 수 있기에, 이진법을 사용하면 컴퓨터가 이해하는 숫자 정보를 직접 표현할 수 있다.
이진수만 사용하면 길이가 너무 길어지기때문에 십육진법도 사용한다. 십육진수는 한글자당 열여섯 종류(0~9, A~F)의 숫자를 표현할 수 있다.
십육진수를 이진수로 표현하려면 4비트(2⁴ = 16)가 필요하다.
여러가지 인코딩 방법들
1. 아스키 코드
영어 알파벳, 아라비아 숫자, 일부 특수 문자를 포함한다. 아스키 문자들은 각각 7비트로 표현되므로, 총
128개(2^7)의 문자를 표현할 수 있다.
+ 실제로는 하나의 아스키문자를 나타내는데 8비트를 사용하지만 그중 1비트는 패리티 비트(parity bit)로 오류검출을 위해 사용되며, 실질적 문자 표현에는 사용되지 않는다.
코드포인트
글자에 부여된 고유한 값
'A'의 코드포인트 = 65
'a'의 코드포인트 = 97
아스키코드 단점
- 한글을 표현할 수 없다
- 128개보다 많은 문자를 표현하지 못한다
2. EUC-KR
초성, 중성, 종성이 모두 결합된 한글단어에 2바이트(16비트)크기의 코드를 부여한다.
ex) '가' = b0a1
한글 인코딩 방식
1) 완성형 인코딩방식
초성+종성+종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여
ex) '가' = 1, '나' = 2 ...
2) 조합형 인코딩방식
초성을 위한 비트열 + 종성을 위한 비트열 + 종성을 위한 비트열의 조합으로 하나의 글자 코드를 완성
ex) 'ㄱ' = 0010 + 'ㅏ' = 0011 + 'ㅇ' = 0001 00011 → '강' = 0010 0011 0001 00011
EUC-KR 단점
- 모든 한글을 표현할 수 없다.
- 나라별로 인코딩을 해야한다면 각 나라 언어의 인코딩을 모두 알아야 해 번거롭다.
3. 유니코드
여러나라의 문자를 광범위하게 표현할 수 있는 통일된 문자 집합이다. EUC-KR보다 훨씬 다양한 한글을 포함하며, 대부분 나라의 문자, 특수문자, 화살표나 이모티콘까지 코드로 표현할 수 있다.
아스키코드나 EUC-KR와는 다른 인코딩 방식
글자에 부여된 값을 그대로 인코딩값으로 삼은 기존 방식들과 달리, 유니코드에 부여된 값을 다양한 방법으로 인코딩해 사용한다.
UTF-8, UTF-16, UTF-32 등의 방법을 사용한다 (UTF 뒤의 숫자는 한 문자를 인코딩하는 길이이다)
'[혼자 공부하는 컴퓨터구조 + 운영체제]' 카테고리의 다른 글
[컴퓨터 구조] 5-3. ISA, CISC와 RISC (0) | 2024.05.03 |
---|---|
[컴퓨터 구조] 5-2. 효율적인 CPU를 위한 설계 기법 - 명령어 병렬 처리 기법 (1) | 2024.05.02 |
[컴퓨터 구조] 4-3. 명령어 사이클과 인터럽트 (0) | 2024.04.29 |
[컴퓨터 구조] 4-1&2. CPU의 구성요소 (0) | 2024.04.25 |
[컴퓨터구조] 1-2. 컴퓨터구조 개요 (2) | 2024.04.22 |