본문 바로가기
경일

16진수/ 아스키코드/ 유니코드

by dev_kong 2021. 12. 30.
728x90
728x90

0.목차

1. 개요

2. 2진법

3. 그래서 왜 16진법

4. 컴퓨터가 텍스트를 출력하는 방법

 

1. 개요

16진법 사실 일상생활에서 쓰일 일은 거의 없다.

아니 그냥 없다.

실제로 나도 살면서 한번도 안써봤으니까.

하지만 이쪽 분야에 공부를 하고 일을 한다면 16진법 한번쯤은 들어봤을지도.

그렇다면 결국 16진법은 컴퓨터와 관련돼서 생겨난 개념일거다.

 

2. 2진법

우선 2진법에 대해 알아보자.

컴퓨터는 굉장히 똑똑한거 처럼 보이지만,

실제로 얘가 아는거는

0과 1 밖에 없다.

모든 데이터를 0 과 1 로 처리하고 0 과 1을 이용해 동작한다.

2 진법에서 하나의 자릿수는 bit 로 표현 할 수 있다.

즉, 0 도 1bit, 1도 1bit 다.

 

1bit 는 0 또는 1 두개의 데이터를 표현할 수 있다.

2bit 는 4개

3bit는 8개 

4bit는 16개

2의 n승으로 커진다.

 

그리고 256개의 데이터를 표헌할 수 있는 8bit 는 1byte 라는 단위로 치환 된다.

 

3. 그래서 왜 16진법임?

여기까진 알겠다.

그래서 왜 16진법을 쓰는 걸까

그 이유는 16진법의 한 자리수가 2의4승의 데이터를 표현할 수 있기때문이다.

16진법은 0~9까는 아라비아 숫자와 똑같이 표기하지만,

10 부터는 알파벳을 이용한다.

 

10 = A

11 = B

12 = C

.

.

.

15 = F

 

한자릿수로 16개의 데이터를 표현하면

두자리를 사용하면 16*16 256개의 데이터를 표현 할 수 있다.

어디서 많이 본 숫자다.

256개의 데이터를 표현하는 단위는 1byte 라고 바로 위에서 얘기했다.

즉, 16진법을 사용하는 이유는 1byte를 두자리의 숫자 또는 문자로 표현 할  수 있기 때문이다.

컴퓨터가 사용하는 2진법으로 1byte를 표현 하기 위해서는 총 8자리의 0 또는 1이 필요하지만,

16진법은 단 두자리! 로 표현 할 수 있다.

결국 16진법은 사람 편하라고 쓰는거다...

 

4.컴퓨터가 글자를 출력하는 방법

추가적인 내용이다.

예전에 폴더폰이나 슬라이드폰을 써본 사람은 알텐데,

밑에 한번에 보낼 수 있는 byte수가 제한 되어있었다.

이때, 알파벳은 표기하는데는 1byte 가 필요하고, 한글은 2byte 필요하다.

알파벳은 총 26개의 글자로 이뤄져있다. 

대문자를 포함해도 52개다.

하지만 한글은 초성, 중성, 종성의 조합으로 글자가 이뤄지기 때문에

더더더욱 많은 글자를 포함하고 있다.

우리생각에는 자음 몇개 + 모음 몇개 = 총 몇개 이렇게 이해 하지만,

컴퓨터는 그렇지 않다. 

초성중성종성이 종합되어 이뤄진 하나의 글자를 하나의 데이터로 처리하기 때문에,

모든 글자를 표현하기 위해선

1byte 보다 큰 

2byte가 필요한 것이다.

 

그럼 여기서 의문이 하나 생긴다.

16진수도 알겠고, 글자를 표현하는 방법도 알았고, 왜 소모되는 byte 가 다른지도 알겠다.

그럼 그 숫자마다 어떤건 A를 의미하고 

어떤건 B를 의미하는지 정해져있나?

정해져있다.

그게 아스키코드다.

8bit 즉 1byte를 이용해 만들어져있다.

그렇기 때문에 2byte가 필요한 한글은 표현하지 못한다.

그래서 나온게 유니코드다.

유니코드를 이용하면 세상의 모든 언어를 표현할 수 있다고 하니 놀랍다.

 

 

 

 

*예전에 어릴때 아빠한테

왜 한글은 2가 소모되고, 영어는 1이 소모되는지 물어 본적이 있었는데,

한참 고민하더니 나중에 니 크면 알려줄게 라고 했었었다.

아빠도 프로그래머였으니까 분명 알고 있던 내용일텐데

어린 나에게는 가르쳐주기 어려운 내용이라 그랬겠지.

 

728x90
728x90

댓글