CS

[Computer Architecture] 0과 1로 문자 표현하기

yerinpark 2023. 10. 11. 10:46

1. 컴퓨터가 표현하는 정보 단위

bit

컴퓨터가 이해하는 가장 작은 정보 단위. 0과 1로 나타낸다.

1byte = 8bit

kB : 1kilobyte = 1,000byte

MB : 1megabyte = 1,000kilobyte

GB : 1gigabyte = 1,000megabyte

TB : 1terabyte = 1,000gigabyte

 

c.f. word(단위)

CPU가 한 번에 처리할 수 있는 데이터 크기.

e.g. half word, full word(1배 크기), double word

-> 현대 컴퓨터의 워드 크기는 대부분 32비트 또는 64비트이다.

 

 

 

이진법(binary)

이진수 표기 : 1000(2) 또는 0b1000

 

이진수의 음수 표현

2의 보수(two's complement)

: 어떤 수를 그보다 큰 2^n에서 뺀 값. 모든 0과 1을 뒤집고, 거기에 1을 더한 값으로 구할 수도 있다.

 

- 컴퓨터 내부에서 어떤 수를 다룰 때는 양수/음수를 구분하기 위해 flag(부가 정보)를 사용한다.

- 2^n의 보수를 취하면 자기 자신이 되어 n비트로는 -2^n과 2^n이라는 수를 동시에 표현할 수 없다.

 

십육진법(hexadecimal)

십육진수 표기 : 15(16) 또는 0x15

 

 

2. 0과 1로 문자를 표현하는 방법

문자 집합(character set)

컴퓨터가 인식하고 표현할 수 있는 문자의 모음. 문자 집합에 속한 문자를 인코딩해서 0과 1로 표현할 수 있다.

- 컴퓨터는 문자 집합에 속해 있지 않은 문자를 이해할 수 없다.

 

문자 인코딩(character encoding)

문자를 0과 1로 변환해서 컴퓨터가 이해할 수 있게 함.

 

문자 디코딩(character decoding)

인코딩의 반대 과정. 0과 1로 이루어진 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정.

 

아스키 코드(ASCII; American Standard Code for Information Interchange)

초창기 문자 집합 중 하나. 영어 알파벳, 아라비아 숫자, 일부 특수 문자 포함.


- 각각 7비트로 표현된다. 128개의 문자 표현 가능.(0부터 127까지의 수 할당)

-> 하나의 아스키 문자는 8비트(1바이트)를 사용하지만 1비트는 parity bit(오류 검출을 위해 사용하는 비트)이므로 실질적으로는 7비트를 사용하여 문자를 표현한다.

 

코드 포인트(code point)

글자에 부여된 고유한 값.

e.g. 아스키 문자 A의 코드 포인트는 65이다.

 

EUC-KR

한글 완성형 인코딩 방식. 초성, 중성, 종성이 모두 결합된 한글 단어에 2바이트 크기의 코드 부여. 네 자리 십육진수로 나타낼 수 있다.

 

한글 인코딩 두 가지 방법- 한글 완성형 인코딩- 한글 조합형 인코딩

 

CP949

EUC-KR 방식으로는 표현할 수 없는 한글 단어를 조금이나마 해결하기 위해 마이크로소프트 사에서 개발.

 

unicode

여러 나라의 문자를 광범위하게 표현할 수 있는 통일된 문자 집합.

 

UTF(Unicode Transformation Format)

유니코드를 인코딩하는 방법.

 

UTF-8

통상 1바이트부터 4바이트까지의 인코딩 결과를 만들어 낸다.c.f. UTF-8, UTF-16, UTF-32는 유니코드 문자의 인코딩 방식.