예지의 개발 로그포스 (Yeji's Log Force)

Code - 문자를 컴퓨터에 저장하는 방식 본문

CS

Code - 문자를 컴퓨터에 저장하는 방식

Yeji Heo 2023. 3. 9. 15:22

Code(코드/부호): 문자를 컴퓨터에 저장하는 방식(Gray Code, ASCII, Unicode)
Character Set(문자 집합)과 Encoding(인코딩)이 필요하다.

- Character Set(문자 집합): 사람의 문자를 컴퓨터가 이해하는 기호로 표현하고자 문자를 각 코드(숫자)에 매칭한 문자의 집합

따라서 각 문자들은 해당 숫자에 맵핑되어있다. 이처럼 문자-숫자 짝을 지어주는 것이 인코딩.
- Encoding: 각 문자를 특정기호로 변환해 맵핑(유니코드를 UTF-8로 인코딩하는 등)
- Decoding: 변환한 특정기호를 다시 문자로 변환해 맵핑(보통 기호를 유니코드로 변환하는 것을 의미)

결론

사람의 문자를 컴터에 저장하려면 인코딩으로 문자->숫자로 변환(2진법 변환)해 짝을 지어준다. 

이렇게 짝지은 것들의 집합이 Character set이다.


1. ASCII
최초의 문자 집합, 영어기준(영어만 표현 가능, 128개의 문자
7bit 사용. 총 1byte(8bit)로 128개의 문자를 표현하는건데
남은 1bit는 에러 검출을 위한 Parity bit로 비워둔 것임.

2. Unicode
OS에 따라 제공되는 Character set이 다르므로 OS가 바뀌면 문자가 깨지는 문제발생
=>문자집합을 통일해야했음. 모든 문자집합을 통일한 유니코드 등장.
2byte만으로 현대 전세계 모든 문자와 기호를 표현가능. 
코드포인트: 문자에 부여되는 번호. U+ 뒤에 2byte수를 16진수로 표시. 예) U+0041, U+AE00

3. UTF(Unicode Transformation Format)

고대문자, 새로운 기호는 2byte로 부족함
Unicode를 인코딩할 방법을 정의할 표준이 필요했음(Unicode와는 또 다른 인코딩 방식. 인코딩 방식을 다양화 한 것)
UTF-8, UTF-16등이 있으며, UTF-8이 1byte~4byte까지 가면 폭으로 인코딩하여 ASCII와 완벽호환되므로 가장 보편적.
UTF-8은 유니코드 모르는 시스템도 사용가능

4. Gray code
숫자를 표기하는 2진 표기법 중 하나
2진수와 다른 점: 10진수 3이 1진수 4로 변할때 이는 2진수에서 0011-->0100으로 바뀐다. bit값이 2번 바뀌었다(경우에 따라 1번일때도 있지만)
즉, 값이 1증가/감소할때 바뀌는 bit개수가 그떄그떄다르다

반면 gray code는 항상 하나의 bit만 바뀐다.
10진수 0이 10진수 1로 바뀔때 그레이코드는 0000-->0001로 바뀐다.
즉, 다음 수로 넘어갈 때 언제나 1개 비트만 바뀐다.(연속된 수를 한 비트만 다르게 인코딩한다)

5. ANSI
특정 인코딩 방식X. 시스템 기본 코드 페이지를 의미.
언어별로 다른 Code Page를 사용, 다양한언어 표현가능
예) EUC-KR: ASCII range는 1byte, 한글은 2bytes로 표현하는 가변길이 인코딩 방식

'CS' 카테고리의 다른 글

Windows 시스템 로캘, Unicode와 UTF-8 (feat. MySQL)  (1) 2024.01.06
Comments