컴퓨터의 문자 표현 방식
컴퓨터에서 문자를 표현하는 방식에는 여러 가지가 있습니다. 이번 글에서는 아스키 코드, 2진화 10진 코드(BCD), 확장 2진화 10진 코드(EBCDIC), 그리고 유니코드에 대해 알아보겠습니다.
1. 아스키 코드
아스키 코드(ASCII code)는 미국정보교환표준부호(ASCII, American Standard Code for Information Interchange)의 약자로, 7비트(128개)로 구성된 문자 집합입니다. 아스키 코드는 1963년에 처음 개발되었으며, 대표적으로 영문 대소문자, 숫자, 특수 문자 등을 포함합니다.
아스키 코드 표
아래는 아스키 코드 표입니다.
2. 2진화 10진 코드(BCD, Binary Coded Decimal Code)
2진화 10진 코드(BCD)는 10진수를 2진수로 변환한 값을 10진수 자릿수마다 4비트씩 나누어서 나타낸 코드입니다.
일반적으로, 10진수를 2진수로 변환할 때는 2진수를 10진수로 변환하는 것보다 복잡하고 더 많은 비트를 필요로 합니다. 하지만 BCD는 2진수를 10진수로 변환하는 것보다 간단하게, 비교적 적은 비트를 사용해 10진수를 나타낼 수 있습니다.
예를 들어, 10진수 1234를 2진수로 변환하면 다음과 같습니다.
1234(10) = 10011010010(2)
이를 BCD로 나타내면 각 자릿수마다 4비트를 사용해 나타냅니다. 예를 들어, 1을 나타내는 4비트는 0001, 2를 나타내는 4비트는 0010, 3을 나타내는 4비트는 0011이 되고, 4를 나타내는 4비트는 0100이 됩니다. 따라서, 1234를 BCD로 나타내면 다음과 같습니다.
1 2 3 4
0001 0010 0011 0100
BCD는 소수점이 없는 고정 소수점 수를 정밀하게 나타내는 데 유용하며, 하드웨어를 이용한 빠른 연산이 가능하다는 장점이 있습니다. 그러나 BCD는 10진수에서 2진수로 변환하는 것이 상대적으로 복잡하고, 2진수에서 10진수로 다시 변환하는 것도 복잡합니다. 이는 일반적으로 속도와 용량 측면에서 불리한 면이 있습니다.
3. 확장 2진화 10진 코드(EBCDIC)
확장 2진화 10진 코드(EBCDIC, Extended Binary Coded Decimal Interchange Code)는 IBM에서 개발한 2진화 10진 코드입니다.
EBCDIC는 아스키 코드와는 달리 8비트를 사용하여 256개의 문자와 기호를 나타냅니다. EBCDIC는 주로 IBM의 대형 컴퓨터 시스템에서 사용되었으며, 1960년대부터 1970년대 초반까지는 거의 모든 IBM 시스템에서 사용되었습니다.
EBCDIC는 알파벳, 숫자, 기호, 제어 문자 등을 포함하는 문자 집합을 지원합니다. 각 문자나 기호는 8비트 이진 코드로 표현되며, 2진 코드의 상위 4비트는 문자의 분류(영어 대문자, 소문자, 숫자 등)를 나타내고 하위 4비트는 각 문자의 10진수 표현을 나타냅니다.
EBCDIC는 아스키 코드와 호환되지 않는다는 단점이 있습니다. 또한, 2진 코드로 표현되는 문자의 순서가 유니코드나 아스키 코드와 다르기 때문에 다른 코드와 상호 변환할 때에도 주의가 필요합니다. 이러한 이유로 EBCDIC는 현재 대부분의 시스템에서 사용되지 않지만, 일부 업계에서는 여전히 사용되고 있습니다.
아래는 EBCDIC 코드 차트의 일부입니다.
16진수 | 문자 | 16진수 | 문자 | 16진수 | 문자 | 16진수 | 문자 |
0x41 | A | 0x42 | B | 0x43 | C | 0x44 | D |
0x45 | E | 0x46 | F | 0x47 | G | 0x48 | H |
0x49 | I | 0x4A | J | 0x4B | K | 0x4C | L |
0x4D | M | 0x4E | N | 0x4F | O | 0x50 | P |
0x51 | Q | 0x52 | R | 0x53 | S | 0x54 | T |
0x55 | U | 0x56 | V | 0x57 | W | 0x58 | X |
0x59 | Y | 0x5A | Z | 0x5B | [ | 0x5C | \ |
0x5D | ] | 0x5E | ^ |
4. 유니코드
유니코드(Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하기 위해 만들어진 국제 표준 코드입니다. 유니코드는 다양한 언어와 문자 체계를 포함하고 있으며, 전 세계의 모든 언어를 지원합니다.
유니코드는 초기에 16비트(65536개)의 범위로 문자를 표현하였습니다. 이를 BMP(Basic Multilingual Plane)라고 부릅니다. BMP에는 대부분 국가의 문자와 기호가 포함되어 있습니다. 그러나 언어의 다양성과 사용자의 요구에 따라 더 많은 문자를 표현하기 위해, 유니코드는 21비트(약 200만개)의 범위를 사용하게 되었습니다.
유니코드 표현 방식
유니코드는 여러 가지 표현 방식이 있습니다. 대표적으로 UTF-8, UTF-16, UTF-32 등이 있습니다.
- UTF-8: 가변 길이 인코딩 방식으로, 영어와 같은 ASCII 문자는 1바이트, 한글과 같은 한글자모는 3바이트, 한자와 같은 대부분의 문자는 3바이트 이상으로 표현합니다.
- UTF-16: 고정 길이 인코딩 방식으로, BMP와 같이 16비트로 표현되며, 16비트 이상의 문자는 서로 다른 2개의 16비트로 표현됩니다.
- UTF-32: 고정 길이 인코딩 방식으로, 모든 문자를 32비트로 표현합니다.
유니코드는 전 세계의 문자를 표현할 수 있기 때문에, 다양한 언어와 문화권에서 사용됩니다. 예를 들어, 한국어, 일본어, 중국어는 물론이고, 히브리어, 아랍어, 그리스어 등의 글자도 모두 표현 가능합니다.
컴퓨터에서 문자를 표현하는 방식은 다양합니다. 아스키 코드와 확장 2진화 10진 코드는 문자를 7비트와 8비트로 표현하는 방식이며, 유니코드는 전 세계의 모든 문자를 표현하는 국제 표준 코드입니다. 유니코드는 UTF-8, UTF-16, UTF-32 등 다양한 표현 방식을 사용하며, 이 중에서도 UTF-8이 가장 널리 사용되고 있습니다. 이러한 문자 표현 방식을 이해하고 활용하는 것은 프로그래밍을 비롯한 컴퓨터 과학의 기초적인 지식 중 하나입니다.
'컴퓨터 기초 > 정보의 표현' 카테고리의 다른 글
컴퓨터의 실수 표현 방식 (0) | 2023.02.19 |
---|---|
컴퓨터의 정수 표현 방식 (0) | 2023.02.19 |
진법 변환 (0) | 2023.02.19 |
수의 체계 (0) | 2023.02.19 |
댓글