[컴퓨터 구조] 0과 1로 문자를 표현하는 방법

컴퓨터는 01로 다양한 문자를 표현할 수 있음

용어

문자 집합(character set)

  • 컴퓨터가 인식하고 표현할 수 있는 문자 모음
  • 컴퓨터는 문자 집합에 속해 있는 문자는 이해할 수 있고, 그렇지 않은 문자는 이해할 수 없음
  • 문자 집합에 속해 있어도 인코딩을 하지 않으면 컴퓨터가 이해할 수 없음

문자 인코딩(character encoding)

  • 문자01로 변환하는 과정
  • 같은 문자 집합에 대해서도 다양한 인코딩 방법이 있음

문자 디코딩(character decoding)

  • 01로 이루어진 문자 코드를 문자로 변환하는 과정
  • 인코딩의 반대 과정

문자 집합

아스키 코드(ASCII)

  • 영어 알파벳아라비아 숫자, 그리고 일부 특수 문자를 포함
  • 7비트로 표현할 수 있음 (27 = 128개의 문자 표현 가능)
  • 실제로는 하나의 아스키 문자를 나타내기 위해 8비트를 사용하지만 그 중 1비트는 오류 검출을 위해 사용되는 비트(패리티 비트)이기 때문에 표현을 위해 사용되는 비트는 7비트

아스키 코드표는 해당 사이트 참고

유니코드(Unicode)

  • 전 세계의 문자를 일관되게 표현할 수 있도록 설계된 표준 문자 집합
  • 가장 많이 사용됨
  • 2바이트(216)로 문자 표현
  • 다양한 방법으로 인코딩 - UTF-8, UTF-16, UTF-32

한글 유니코드는 해당 사이트 참고

인코딩

한글은 일반적인 언어와 달리 초성, 중성, 종성의 조합으로 이루어져 있습니다.
그래서 한글 인코딩에는 두가지 방식이 존재합니다.

  • 완성형 인코딩
    • 초성, 중성, 종성의 조합으로 이루어진 하나의 글자에 고유한 코드를 부여하는 인코딩 방식
  • 조합형 인코딩
    • 초성을 위한 비트열, 중성을 위한 비트열, 종성을 위한 비트열을 할당하여 그것들의 조합으로 하나의 글자 코드를 완성하는 인코딩 방식

EUC-KR

  • 대표적인 완성형 인코딩 방식
  • KS X 1001, KS X 1003 이라는 문자 집합 기반
  • 초성, 중성, 종성이 결합된 한글 단어에 2바이트 크기의 코드 부여
  • 2,350개 정도의 한글 단어 표현 가능
  • 문자 집합에 정의되지 않은 글자는 표현할 수 없음 (한글 깨짐 현상)

UTF-8

  • 유니코드를 인코딩하는 방식 중 하나
  • 가장 많이 사용되는 가변 길이 유니코드 인코딩
  • 인코딩 한 값의 결과는 1바이트 ~ 4바이트가 될 수 있다 (값의 범위에 따라 결정)
  • 1바이트 영역(0~127)은 아스키 코드와 하위 호환성을 가짐
  • 한글 대부분은 크기가 3바이트

댓글남기기