컴퓨터는 어떻게 문자와 메일, 문서를 작성하고 저장할까? 이 질문은 컴퓨터가 '문자'를 어떻게 표현하는지를 이해해야한다.
컴퓨터에서 숫자는 2진법으로 표현한다. 그렇다면 문자도 2진법의 수로 표현하면 되지 않을까? 영어의 경우 각각의 알파벳과 숫자를 매칭시켜켜 표현하기로 약속한다면 컴퓨터에서도 문자를 처리할 수 있을 것이다. 그러한 약속이 바로 ASCII이다.
ASCII
American Standard Code for Information Interchange
위 테이블을 보면, 대문자 A는 65(10진법), 01000001(2진법)로 표현할 수 있다. 기본 ASCII 코드표는 7비트만 이용해서 모든 문자들을 나타내어 2^7 = 128개의 문자를 나타낼 수 있다. 확장 ASCII는 8번째 비트를 추가하여 총 256개의 문자를 나타낼 수 있게 되었다.
Unicode
전세계 모든 문자를 컴퓨터에서 일관되게 표현할 수 있도록 설계된 산업표준으로 8비트, 16비트, 32비트 등으로 인코딩 할 수 있는 ASCII의 상위집합이다.
우리가 사용하는 문자의 개수는 256개보다 훨씬 많다. 영어 외의 다른 언어들, 수학 기호들을 확장 ASCII에 포함시키기 어렵다. 따라서 더 많은 문자들을 포함할 수 있는 ASCII의 상위집합인 유니코드(unicode)가 만들어졌다. 유니코드의 첫 128개 문자는 ASCII의 128개 문자와 동일하여 서로 호환이 되고, 유니코드는 100만개 이상의 문자들을 나타낼 수 있다.
유니코드로는 이모티콘까지도 표현할 수 있다!
예를 들어 😂 (tears with joy) 이모티콘은 10진법으로 128,514
이고 2진법으로는 11111011000000010
이다.
문자를 숫자로 표현했다면 그림, 영상, 음악도 숫자로 표현할 수 있다.
이미지는 픽셀로 이루어져있고, 각각의 픽셀은 RGB의 조합으로 색깔을 표현한다. RGB
는 RED
, GREEN
, BLUE
로 각각 0부터 255까지 총 256만큼을 가질 수 있다. 예를 들어 RGB(0,0,0)
은 black
이고 RGB(255,255,255)
는 white
이다. 0부터 255의 숫자 중 얼만큼씩을 가졌는지로 무지개의 어느 색이든 표현할 수 있는 것이다.
영상도 마찬가지이다. 여러개의 이미지가 연속되는 것이 영상이기 때문에 숫자로 표현할 수 있으며, 음악도 음(note),길이(duration),음량(volume) 3가지 값을 사용해 숫자로 표현할 수 있다.