본문 바로가기
운영체제

[컴퓨터 공학 기초 강의] 5강. 0과 1로 문자를 표현하는 방법

by proudev 2023. 7. 30.

[컴퓨터 공학 기초 강의] 5강. 0과 1로 문자를 표현하는 방법 - YouTube

위 링크를 기반으로 작성했습니다.

 

문자 집합과 인코딩

* 문자 집합(character set)

  - 컴퓨터가 이해할 수 있는 문자의 모음

* 인코딩(encoding)

  - 코드화하는 과정

  - 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정

* 디코딩(decoding)

  - 코드를 해석하는 과정

  - 0과 1로 표현된 문자 코드로 문자로 변환하는 과정

 

 

가장 대표적인 문자집합 인코딩 방법: 아스키 코드

 

아스키 코드

초창기 문자 집합 중 하나

알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자

7비트로 하나의 문자 표현

8비트 중 1비트는 오류 검출을 위해 사용되는 페리티 비트(parity bit)

아스키 코드로 인코딩된 값은 0~127 (총: 128개)까지 있다. 

아스키 코드가 128개까지 있는 이유는 7비트로 표현한 코드이기 때문이다(2^7)

간단한 인코딩

한글을 포함한 다른 언어 문자, 다양한 특수 문자 표현 불가

- 아스키 코드는 7비트로 하나의 문자를 표현하기에

- 128개보다 많은 문자를 표현할 수 없음

- 8비트 확장 아스키(extended ASCII)의 등장, 여전히 부족

 

 


한글 인코딩: 완성형 vs 조합형 인코딩

한글을 위한 인코딩이 필요

한글의 특징 

알파벳을 이어 쓰면 단어가 되는 영어

초성, 중성, 종성의 조합으로 이루어진 한글

완성형 인코딩 방식과 조합형 인코딩 방식이 존재


EUC-KR

KS X 1001 KS X 1003 문자집합 기반의 한글 인코딩 방식

완성형 인코딩

글자 하나 하나에 2바이트 크기의 코드 부여

- 2바이트 == 16비트 == 4자리 십육진수로 표현

2300여개의 한글 표현가능

여전히 모든 한글을 표현하기에는 부족한 수

쀏, 뙠, 휔 같은 한글은 표현 불가능

 

가: b0a1(완성형 인코딩)

거: b0c5(완성형 인코딩)

객: b0b4(완성형 인코딩)

 

직접 인코딩해보기

 - http://dencode.com 

 

DenCode | Encoding & Decoding Online Tools

Encoding and Decoding site. e.g. HTML Escape / URL Encoding / Base64 / MD5 / SHA-1 / CRC32 / and many other String, Number, DateTime, Color, Hash formats!

dencode.com

EUC-KR

더군다나 이렇게 언어별 인코딩을 국가마다 하게 되면

다국어를 지원하는 프로그램을 개발할 때엔 

언어별 인코딩 방식을 모두 이해해야 한다.

 

모든 언어, 특수문자까지 통일된 문자 집합을 사용하면 어떨까?

통일된 문자 집합 & 인코딩 방식이 있다면 ---------> 그래서 생겨난 것이 유니코드 문자 집합UTF-8 이다.


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

유니코드 

 - 통일된 문자 집합

 - 한글, 영어, 화살표와 같은 툭수 문자, 심지어 이모티콘까지

 - 현대 문자 표현에 있어 매우 중요한 위치

 

유니코드의 인코딩 방식

 - UTF-8, UTF-16, UTF-32 등

 - 유니코드 문자 집합: https://unicode-table.com/en/blocks/ 

 

Unicode Blocks (◕‿◕) SYMBL

Unicode web service for character search. Find, copy and paste your favorite characters: 😎 Emoji, ❤ Hearts, 💲 Currencies, → Arrows, ★ Stars and many others 🚩

symbl.cc

 

UTF-8

- UTF (Unicode Transformation Format) == 유니코드 인코딩 방법

- 가변 길이 인코딩: 인코딩 결과가 1바이트 ~ 4바이트

- 인코딩 결과가 몇 바이트가 될지는 유니코드에 부여된 값에 따라 다음

- 유니코드에 부여된 값 == 유니코드 포인트

 

'운영체제' 카테고리의 다른 글

운영체제란  (0) 2023.07.30
컴퓨터 구조 개념  (0) 2023.07.30

댓글