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

2023. 3. 8. 23:44기술 창고/CS 지식

728x90
SMALL

문자 집합과 인코딩

  • 문자 집합
    • 컴퓨터가 이해할 수 있는 문자의 모음
  • 인코딩
    • 코드화하는 과정
    • 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정
  • 디코딩
    • 코드를 해석하는 과정
    • 0과 1로 표현된 문자 코드(인코딩된 문자 코드)를 문자로 변환하는 과정

 

아스키 코드

  • 초창기 문자 집합 중 하나
  • 알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자
  • 7비트로 하나의 문자 표현
    • 8비트 중 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit)

# 아스키 코드

  • 간단한 인코딩
  • 한글을 포함한 다른 언어 문자, 다양한 특수 문자 표현 불가
    • 아스키 코드는 7비트로 하나의 문자를 표현하기 때문에 128개(2의 7승(7비트)) 보다 많은 문자를 표현할 수 없다.
    • 8비트 확장 아스키 코드 (extended ASCII) 등장했지만 여전히 부족하다.
    • 기본적으로 아스키코드는 한글과 같은 다른 언어들을 표현이 불가능하기 때문에 각 국가마다의 인코딩 방식이 따로 정해져있는데 다국어를 지원하는 프로그램을 개발하려면 언어별 인코딩 방식을 모두 이해해야 한다.

 

완성형 VS 조합형 인코딩 방식

  • 완성형 인코딩 방식 : 자음, 모음들이 조합된 한 글자 자체로 코드를 부여하는 방식
  • 조합형 인코딩 방식 : 자음, 모음들이 각자 따로따로 코드가 부여되는 방식

 

EUC-KR

  • 완성형 인코딩 방식
  • KS X 1001 KS X 1003 문자집합 기반의 한글 인코딩 방식
  • 글자 하나 하나에 2바이트 크기의 코드 부여
    • 2바이트 == 16비트 == 4자리 16진수 표현

# EUC-KR 표현 표

  • 2300여개의 한글을 표현 가능
  • 모든 한글을 표현하기에는 부족한 수
  • 쀏, 뙠 이런 문자는 불가

 

# EUC-KR 인코딩 체험 사이트 : https://dencode.com/

 

 

유니코드 문자 집합과 utf-8

  • 유니코드
    • 통일된 문자 집합
    • 한글, 영어, 화살표와 같은 특수 문자, 심지어 이모티콘까지 표현이 가능하다.
    • 현대 문자 표현에 있어 매우 중요한 문자 집합
  • 유니코드의 인코딩 방식
    • utf-8, utf-16, utf-32 등등
  • utf-8 인코딩
    • UTF (Unicode Transformation Format) == 유니코드 인코딩 방법
    • 가변 길이 인코딩 : 인코딩 결과가 1바이트 ~ 4바이트 등등 가변적이다.
    • 인코딩 결과가 몇 바이트가 될지는 유니코드에 부여된 값에 따라 다르다. 
    • 즉, 유니코드 문자 집합에 있는 각 문자에 부여된 코드 포인터의 범위에 따라 인코딩 결과의 바이트 크기는 달라진다.

 

 

 

# 유니코드 문자 집합 확인 사이트 : https://symbl.cc/en/unicode/blocks/ 

# 유니코드 utf-8 인코딩 체험 사이트 : https://onlineutf8tools.com/convert-utf8-to-binary

 

728x90
반응형
LIST