ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 글자와 이모티콘을 컴퓨터가 어떻게 알고있지? | Harvard CS50 Week 0 Scratch
    Computer Science/CS 50 Harvard 2021. 10. 27. 19:22

    강의정보

    ASCII

    컴퓨터는 숫자로 대화한다. 그렇다면 컴퓨터에게 글자는 어떻게 알려줘야 좋을까? 바로 숫자와 글자를 map, 즉 매칭시켜주면 된다. 수십년전, 이렇게 숫자를 글자와 매칭하는 시스템을 만들었는데, 예를들면 알파벳 A는 65, B는 66과 같은 식이다. Binary(이진법)으로 표현하자면 "A"는 다음과 같다.

    0 1 0 0 0 0 0 1

    이런식으로 특수기호, 알파벳 대소문자를 연결해둔 map을 ASCII라고 한다. 아래 표를 보면, 각 숫자들이 어떻게 연결되어있는지 알 수 있다.

     

    우리가 문자를 받았을 때, 사실 핸드폰에는 72, 73, 그리고 33과 같은 정보가 전달된다. 이 bits들은 ASCII를 잘 살펴보면  HI! 라는 텍스트인것을 확인할 수 있다. 더 정확하게는, 각 캐릭터(character)는 아래와 같은 8bits, 또는 1바이트로 전송된다.

    01001000 --> 72 --> H
    01001001 --> 73 --> I
    00100001 --> 33 --> !

    8bits(또는 1byte)를 이용하면 우리는 2^8, 즉 256가지 다른 값들을 표현할 수 있다(0-255). 아마도 이 byte라는 단어가 너무나 생소하지는 않을것이다. 왜냐하면 핸드폰 또는 컴퓨터의 용량을 이야기 할 때, 우리는 megabyte(MB), gigabytes(GB), or terabyte(TB)와 같이 byte라는 단어를 많이 접해봤기 때문이다.

     

     

    이모티콘은? 한글은?

    그렇다면 영어가 아닌 언어나 알파벳에 엑센트 마크가 붙은 캐릭터들은 어떨까? 이것들은 Unicode(유니코드)의 일부분이다. 유니코드는 당연하게도 ASCII에 비해 훨씬 많은 bits를 사용해서 캐릭터와 숫자를 매칭한다. 한글이나 다른 나라의 언어들에 쓰여지는 캐릭터들도 거의 모두 등록되어있다고 생각하면 된다.

     

    요즘 이모티콘을 많이 쓴다. 만약 아래와 같은 마스크쓴 이모티콘을 받았다면, 이것은 4bytes의 정보로 날아오는것이다.

    11110000 10011111 10011000 10110111

    Samsung, Apple등의 회사들이 각자의 핸드폰/컴퓨터를 개발할 때, 이모티콘 디자인도 조금 다르게 제작하기때문에, 아이폰에서 보낸 이모티콘이 삼성폰에서 받았을때 다르게 보인다. 하지만, 서로 주고받는 정보는 위에 보여진 4bytes의 정보이고, 이것은 "face with medical mask 이모티콘"으로 약속되어있다.

     

     

    댓글

Designed by Tistory.