반응형



안녕하세요!

문모닝입니다!


문모닝의 IT_16.컴퓨터에서의 문자표현



변화하는 과학기술과

끊임없이 변화하는 시장 상황에 부합하는

IT의 트랜드를 하나하나 살펴보는

문모닝의 IT!


컴퓨터는 2진수 코드밖에 처리하지 못하는데

우리가쓰는 영문 대, 소문자, 숫자, 구두점, 특수문자에

각 나라 언어들까지 어떻게 구분할까?

생각해 보신적 있으실 겁니다.










그래서 오늘은 컴퓨터에서의 문자 표현

대해 알아보도록 하겠습니다!


computer word



문자들을 컴퓨터 내부에서 표현할 때는

미리 약속된 코드 체계를 사용합니다.

그 중 대표적인 것이 ASCII(아스키코드)유니코드죠.

ASCII유니코드는 문자를 7비트로

표현하느냐, 16비트로 표현하느냐의

차이를 가지고 있습니다.


그럼 이 2가지 코드 체계에 대해

알아보도록 하겠습니다.










ASCII 코드


초창기 컴퓨터에서는 약속된 체계가 아닌

다양한 방법으로 문자를 표현했는데,

호환을 비롯한 여러 문제가 발생했습니다.

이런 문제를 해결하기 위해

미국 내에서 기술 표준을 개발하는 기구인

ANSI에서 개발한 것이 바로

ASCII 코드입니다.

그리고 현재까지 이 코드가 일반적으로

사용되고 있죠.

ASCII 코드는 앞서 말씀드린 것처럼

7비트로 표현하므로 총 2의 7승개

즉 128개의 문자를 표현할 수 있습니다.

예를 들면 A1을 표현할 때 대문자A의 경우 1000001,

숫자 1의 경우 0110001로 1000001 0110001로 표현이 되는 것이죠.


 

ascii table





위의 표는 ASCII 코드 표입니다.

사실 추가적인 문자를 지원해야 할 필요성이 있어

기존 보다 1비트 많은 8비트를 사용하고

이런 코드를 확장 ASCII라고 합니다.

총 256개의 문자를 표현할 수 있죠!

(추가된 1비트는 가장 왼쪽에 들어가게 됩니다.)


 아마 ASCII 코드를 보면서

알파벳을 제외한 다른 나라들의 언어를

표현하지 못하는 것에 의문이 생기셨을 겁니다.

이런 문제를 해결하기 위해

발생한 코드가 바로 유니코드입니다.












유니코드


유니코드를 더 자세히 말씀드리면

사용중인 운영체제, 프로그램, 언어에 관계없이

각 문자마다 고유한 코드 값을 제공하는

개념의 코드 체계입니다.

모든 문자를 16비트로 표현하므로

최대 2의 16승인 65,536자를 표현할 수 있습니다.


영문대소문자와 숫자 코드를 볼 수 있는 유니코드 사이트

http://www.unicode.org/charts/PDF/U0000.pdf 

한글에 대한 코드를 볼 수 있는 유니코드 사이트

http://www.unicode.org/charts/PDF/UAC00.pdf


한글을 예로 유니코드를 좀 더 살펴보면

초성, 중성, 종성으로 구성된 한글은

초성 19개 * 중성 21개 * 종성 28개를

계산한 값으로 총 11,172자구요.

AC00부터 D7A3까지 코드를 할당 받습니다.


이런 한글에 대한 코드는 임의로 정한 것이 아니라

공식에 따라 구해진 것인데요

{[(초성인덱스×21)+중성인덱스]×28} + 종성인덱스 + 0xAC00

위의 공식을 따릅니다.


계산이 까다로운데 기본적인 개념인

'유니코드에는 한글을 표현할 수 있는 코드가 있고,

총 11,172개로 구성되어 있다' 정도만

기억하시면 될것 같습니다.



unicode




 음.. 이쯤되면 컴퓨터에서의 문자 표현은

다 해결된 것 같다고 느끼실 수도 있습니다.

하지만 유니코드에도 아직 모자란 부분이 있죠.

바로 1바이트만 있어도 충분히 표현가능한

문자들의 경우도 어쩔수 없이 2바이트를 사용하여

공간을 낭비한다는 것과 65,536자 이외의

한자 고어, 한국 고어, 중국 고어 등을

넣을 충분한 공간이 없다는 것인데요.


이를 해결하기 위해 UTF라는 개념이 등장합니다.

UTFUnicode Transformation Format의 약자입니다.

UTF에는 UTF-1, UTF-7, UTF-8, UTF-16

여러가지 인코딩 방식이 있는데요.

그 중 UTF-8UTF-16을 살펴보겠습니다.

먼저 UTF-16은 한자, 한국 고어와 같이

추가적인 문자를 표현하기 위한 인코딩 방식입니다.

유니코드 2바이트로 표현가능한 글자는 2바이트로,

추가적인 문자는 4바이트로 확장하여 사용하는

가변 코드 체계인거죠.

UTF-8의 경우 16과 조금 다른데

이는 유럽이나 미국등 알파벳을 사용하는

나라를 위해 사용하는 인코딩 기법입니다.

좀 더 똑똑하게 동작을 해서 알파벳의 경우

1바이트로, 한글, 중궁어의 경우 3~4바이트를

이용하는 방법입니다.


문서에 한글, 중국어가 많으면 UTF-16

알파벳이 많으면 UTF-8이 더 유리하겠죠?


 이상으로 컴퓨터에서의 문자가 어떤 체계를 가지고

어떻게 표현되는지 알아봤습니다!


반응형

'문모닝의 인터넷공부 > IT 공부' 카테고리의 다른 글

18.클라우드 서비스(Cloud Service)  (0) 2017.11.30
17.QR코드(QR Code)  (0) 2017.11.28
15.인텔의 컴퓨트 카드  (0) 2017.11.27
14.가상화폐 비트코인  (0) 2017.11.27
13.꿈의 통신기술, 양자통신  (0) 2017.11.24

+ Recent posts