아스키코드(ASCII), 유니코드

김용진·2023년 7월 10일
0

나만몰랐던이야기

목록 보기
1/3

학원에서 따라가는 진도 중, 궁금했던것들을 하나하나 적어 나가보려 만들었다.

본인 역시 결국 인터넷 서칭을 통한 방식이라 틀려쓸지도모른다..

강의중 자바이클립스 JVM을 만지는데 있어 초기설정에 UTF-8로 맞춰달라는 말이 있었다.

Java의 정석 책을 읽으면서도 문자열 '1' + '2'의 호출값이 뭐가 나올까에 대한 답변을 손으로쓰라는것이 있었다
챕터 2부터 이런문제를 써내리는거보니 수학의정석의 폼을 유지하는책이구나 라는걸 느꼈다

이러다보니 컴터를 어느정도 뜯어 고칠줄은 알지만 정작 정확한 정의를 내린적이 없다 생각하여 혹은 예전에 배웠으나 까먹었던 기억을 되살리고자 글로 남겨보았다.

잡설이 길었다. 본론으로 들어가보자.

byte? bite?

컴터의 가장 기본적인 저장 단위는 byte이다.

이 1byte에는 8bit가 할당되어있고, 1byte에는 2^8 = 256개의 값을 저장할 수 있게 되어있다.

  • 이러다보니 통신사에서는 1기가 라면서 일반인들에게 인터넷속도 올려치기하는데 사실 실제로는 단위가 mbps이기 때문에 1기가인터넷은 1024 bit로 최고 속도는 128MB/s이다...

그리고 이 컴퓨터에는 문자나 기호들의 집합을 저장하기 위하여 0,1로 이루어진 이 바이트칸에 저장한다. 이를 '문자 인코딩' 혹은 '부호화' 라고 부른다.

아스키코드(ASCII)

정식 풀 네임은 American Standard Code for Information Interchange이며 7비트, 128개의 값을 저장하고 있다.

다음 아스키코드의 저장된 값과 그 결과는 다음과 같다.

  • 여기서 왜 8비트라면서 7비트에 값을 저장하냐 한다면 1비트는 통신 에러를 잡기위하여 할당되어 있기때문이라고한다.

이는 영문과 기타 필요한 명령문을 저장하기에 충분했지만, 세계는 넓다보니 다양한 인종의 언어를 표현하기위해 8비트(256개)로 확장한 아스키코드가 나오게 된다.

오늘날 이를 'ANSI코드' 라고 부른다.

이후에도 256만으로 충분하다 생각했으나, 한자와 같은 언어에 문제가 생겨 국제 표준 코드가 나오게 되는데 이를 유니코드(Unicode)라 부른다.

유니코드(Unicode)

문자 표현의 한계로 나오게 된 초창기 유니코드는 총 2byte(2^16)이며, 이마저도 부족하여 개정판이 여러나오게 되는데

코드를 쪼개고 쪼개어 110만개의 값을 저장하게 되었다 유니코드는 이를 17개의 구역으로 나누었는데 이는 110만개를 2^16으로나눈값이다.

  • 위 사진은 0번째 구역의 모습이다.

이렇게 국제 표준 코드가 마련되었고 UTF-8은 이 유니코드를 다시 인코딩하여 1~4byte로 표현한것이다.

이 변환 방식의 자세한 방법은 링크로 첨부해보려한다.
유니코드를 UTF-8로 인코딩하기

profile
메모리폼

0개의 댓글