텍스트
ASCII 코드[편집]
1963년 ASA(미국표준협회)에 의해 결정되어 미국의 표준 부호가 되었다. 소형 컴퓨터를 중심으로 보급되어 현재 국제적으로 널리 사용되고 있다.
컴퓨터의 내부에서 문자를 표현하는 표준적인 코드체계로서, 7비트로 구성되어 있으며 자료의 처리나 통신장치에서 표준 코드로 널리 쓰인다. 일반적으로 컴퓨터는 데이터를 8개의 비트 단위로 묶어 한 번에 처리한다.
아스키는 128개의 가능한 문자조합을 제공하는 7비트 부호로, 처음 32개의 부호는 인쇄와 전송 제어용으로 사용된다. 보통 기억장치는 8비트이고, 아스키는 단지 128개의 문자만 사용하기 때문에 나머지 비트는 패리티 비트나 특정문자로 사용된다.
비트는 2진법의 0과 1 가운데 하나를 나타내는 단위이다. 즉, 1비트는 0이 될 수도 있고, 1이 될 수도 있다. 비트 8개를 모아 놓은 것을 바이트라고 부른다. 그러므로 1바이트로 표시할 수 있는 최대 문자의 수는 256조합이 된다.
따라서 컴퓨터에서는 8비트씩을 묶어 처리하는 것이 가장 효율적이다. 비트를 7개 이하로 묶을 경우에는 표현 가능한 수가 128이 되지만, 이 숫자로는 세계 여러 나라에서 사용하는 모든 숫자ㆍ국가 언어ㆍ기호 등을 충분히 표현할 수 없고,
9비트 이상일 경우에는 512가지나 되어 필요 없는 영역이 많이 생기게 되기 때문이다. 따라서 256가지의 영역마다 어떤 원칙에 의해 표현 가능한 모든 숫자ㆍ문자ㆍ특수문자를 하나씩 정해 놓은 것이 바로 아스키코드다.
패리티 비트[편집]
정보의 전달 과정에서 2진 비트열에 부가되는 에러 검출용 비트를 뜻한다. 직렬 데이터 전송에서는 데이터 라인의 종류와 관계없이 항상 에러(error)가 발생하므로 이 에러를 검출하는 방법이 필요하다.
비동기(非同期) 데이터 링크 제어에서는 이 에러의 검출에 패리티 비트를 사용한다. 비동기 통신에서는 데이터의 전송이 단속적으로 이루어지고 한 번에 하나의 문자가 전송되므로 비동기 에러 검출은 실행되어야 한다.
이것에 사용되는 것이 패리티 비트이다. 전송 에러를 검출하기 위해 같은 문자를 두 번 보내는 대신 패리티 비트를 사용하면 하나의 비트로 그 문자를 기술하는 정보를 제공할 수 있다.
시스템의 논리 구조에 따라 1로 된 비트들의 개수가 항상 짝수 또는 홀수가 되도록 바이트의 끝에 붙인다. 예를 들어, 7비트의 0010110이라는 데이터에서 짝수 패리티가 되게 하기 위해서는 1의 패리티 비트를 붙여 00101101로 한다.
또 같은 데이터에 대해 홀수 패리티 비트가 되게 하려면 0의 패리티 비트를 붙인다.
유니코드[편집]
세계 모든 나라의 언어를 통일된 방법으로 표현할 수 있게 제안된 국제적인 코드 규약.
미국 애플 컴퓨터 사나 마이크로소프트사, IBM 사, 썬 마이크로시스템즈 사, 노벨 사 등 운영 체제를 직접 다루는 미국 기업이 중심이 되어 설립한 유니코드 컨소시엄이 제창했다. 1993년에는 IOS의 표준(ISO/IEC10646)으로 되었다.
영어는 7비트, 비영어는 8비트 즉 한 바이트로 표현이 가능하였지만 한글, 한자 또는 일본 가나 등과 같은 글자는 그 구조가 영어와 달라 하나의 바이트로는 표현이 불가능하기 때문에 일반적으로 두 바이트를 조합하여 하나의 글자로 표현하고 있다.
이러한 문제점을 해결하고 세계 각국의 글자에 대응할 수 있도록 유니코드가 등장했다. 본질적으로 유니코드에서는 16비트를 사용하여 하나의 글자로 표현하고 있다.
유니코드에서는 일부의 예외를 제외한 모든 글자를 두 바이트로 취급하기 때문에 이 코드를 사용한 경우 로마글 프로그램을 한글, 일어, 중국어 등 두 바이트 글자로 변환하는 데 드는 비용과 노력을 절감할 수 있다.
그러나 데이터의 용량이 늘어나므로 컴퓨터 안에서 문서 표현이나 처리보다는 주로 문서 교환이나 통신 등의 분야에서 사용되고 있다.
유니코드 2.0에서 한글의 경우 현대의 표현 가능한 모든 한글 11,172자의 코드 값은 0xAC00-0xD7A3이고, 한글 자모 글자 240개(옛 한글 자소 포함) 의 코드 값은 0x1100-0x11F9이다.
자모 글자 코드로 풀어쓰기를 하면 옛 한글의 표현도 가능하고 채움(fill) 글자를 이용하여 일부 자모가 빈 글자의 표현이 가능하기도 하다.
UTF-8[편집]
UTF-8은 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나로, 유니코드에서 ASCII에 해당하는 문자는 1바이트, 그 이후의 문자는 2바이트~4바이트로 표현된다.
따라서 ASCII와 호완이 잘 되며, C 같은 Null-terminated 문자열에도 적합하다. UTF-8 인코딩은 유니코드 한 문자를 나타내기 위해 1바이트에서 4바이트까지를 사용한다.
예를 들어서, U+0000부터 U+007F 범위에 있는 ASCII 문자들은 UTF-8에서 1바이트만으로 표시된다. 4바이트로 표현되는 문자는 모두 기본 다국어 평면(BMP) 바깥의 유니코드 문자이며, 거의 사용되지 않는다.
UTF-16[편집]
UTF-16은 유니코드 컨소시엄과 ISO/IEC 10646에 의해 정의되어 있다. UTF-16(16-bit Unicode Transformation Format)은 유니코드 문자 인코딩 방식의 하나이다.
주로 사용되는 기본 다국어 평면 (BMP, Basic multilingual plane)에 속하는 문자들은 그대로 16비트 값으로 인코딩이 되고 그 이상의 문자는 특별히 정해진 방식으로 32비트로 인코딩이 된다.
기본 다국어 평면은 U+0000 에서 U+FFFF 에 놓인 문자를 담고 있다. 이 영역에는 우리가 쉽게 생각할 수 있는 문자들이 포함되며, 한글, 한자 등은 모두 여기에 포함되어 있다.
이 영역에는 서러게이트 문자(surrogate)들이 준비되어 있어 16비트 이상의 문자를 표현할 때를 대비해 놓았다. 기본 다국어 평면의 문자들은 곧바로 16비트 값으로 대응되어 인코딩 된다.
EBCDIC 코드[편집]
8비트에서 한 글자를 표현하는 부호체계로, 1바이트(8비트)로 영자(A~Z), 숫자(0~9), 특수기호 등 256종의 문자를 표현할 수 있다. 특히, 숫자는 4비트를 사용하여 16진법으로 표현하고 있다.
BCD 코드[편집]
10진수 한자리의 수를 2진수 4비트로 표현하는 방법이다. 4비트의 2진수 각 비트가 8(2^3), 4(2^2), 2(2^1), 1(2^0)의 가중치를 가지므로 8421코드라고도 한다.
예를 들어, 10진수 579를 BCD코드로 변환하면 0101 0111 1001 이 된다.