본문 바로가기
[혼자 공부하는 컴퓨터구조 + 운영체제]

[컴퓨터구조] 2. 컴퓨터 정보 단위와 인코딩

by haeyoon 2024. 4. 24.

컴퓨터의 정보 단위

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 뒤의 숫자는 한 문자를 인코딩하는 길이이다)