앞서 컴퓨터는 0과 1로 모든 정보를 표현한다고 했는데 어떻게 0과 1로 표현하는지 알아보자.
비트(bit) : 0과 1을 나타내는 가장 작은 단위를 비트라고 한다.
바이트(byte) : 비트를 8개로 묶은 단위이다. 2의 8승, 256개의 정보를 표현할 수 있다.
킬로바이트(kB) : 바이트를 1000개로 묶은 단위이다.
메가바이트(MB) : 킬로바이트를 1000개 묶은 단위이다.
기가바이트(GB) : 메가바이트를 1000개 묶은 단위이다.
컴퓨터는 0과 1만 이해한다. 즉 이진법으로 모든 데이터를 표현한다.
예) 1001 -> 0111
하지만 이러한 음수 표현 방법에는 한계가 있다.
음수로 표현한 값과 양수로 표현한 값이 같을 수 있기 때문이다.
그래서 컴퓨터는 내부에서 어떤 값을 다룰 때 부가 정보가 필요한 경우 플래그를 사용한다.
플래그에 자세한 내용은 나중에 자세히 다루도록 하겠다.
0과 1로 문자를 표현하는 다양한 방법에 대해 알아보자.
문자집합
컴퓨터가 인식하고 표현할 수 있는 문자의 모음을 문자 집합 이라고 한다.
인코딩
문자집합에 포함된 문자를 0과 1로 변환하는것을 인코딩 이라 한다.
아스키 코드
아스키는 초장기 문자 집합 중 하나로, 영어 알파벳,아라비아 숫자, 일부 특수 문자를 포함한다.
아스키 코드표를 보면 어떠한 숫자가 어떠한 문자로 매칭되어 변환되는지 알 수 있다.
EUC-KR
한글을 표현하는 문자 집합이며 한글 인코딩에는 완성형과 조합형이 있다.
EUC-KR은 완성형 인코딩이기 때문에 표현의 한계가 있다.가령 '뷃' 같은 문자를 표현할 수 없다.
유니코드와 UTF-8
유니코드는 모든 언어를 통일된 표준 방식으로 인코딩 하기 위해 만들어 졌다.
글자에 부여된 값 자체를 인코딩된 값으로 삼지 않고 다양한 방법으로 인코딩한다. 그 중 가장 대중적인 UTF-8은 통상 1바이트부터 4바이트 까지 인코딩 결과를 만들어 낸다.
이 두 단어는 자주 접하는데 많은 사람들이 헷갈려 한다. 정리하자면 유니코드는 문자 집합이고 UTF-8은 인코딩 방식중 하나이다.