💡 디지털 코드란 무엇일까?
디지털 시스템은 숫자뿐 아니라 문자, 기호, 특수 문자 등 모든 정보를 2진 비트로 표현한다. 이때 사용하는 다양한 코드를 디지털 코드라고 부른다. 디지털 코드는 크게 다음과 같이 분류된다:
- 수치 표현용 코드: 가중치 코드, 비가중치 코드 등
- 문자 표현용 코드: ASCII, EBCDIC, 유니코드 등
- 에러 검출 및 정정용 코드: 패리티 비트, 해밍 코드 등
🔢 1. 수치 표현을 위한 디지털 코드
1-1. 가중치 코드 vs 비가중치 코드
분류 설명 예시
가중치 코드 | 각 비트가 고정된 가중치를 가짐 | 8421, 2421 |
비가중치 코드 | 비트 가중치 개념 없음 | 그레이 코드, Excess-3 |
1-2. BCD (Binary-Coded Decimal, 8421 코드)
- 설명: 10진수를 4비트 2진수로 표현하는 방식
- 예시: 10진수 6 → 0110, 10진수 9 → 1001
- 주의: “1010”~“1111”은 사용하지 않음 → 유효하지 않은 코드
✅ BCD는 사람이 보기 쉽고 변환이 간편하지만, 계산(연산)이 복잡해짐
1-3. Excess-3 (3초과 코드)
- 설명: BCD에서 각 수에 +3을 더해 표현한 비가중치 코드
- 특징:
- 사용 가능한 값은 BCD보다 많음
- 자기보수(Self-Complementary) → 보수 연산이 간단
- 예시: 10진수 0 → 0011, 1 → 0100, 9 → 1100
1-4. Gray Code (그레이 코드)
- 특징:
- 인접한 숫자 간 1비트만 변화 → 오류 최소화
- 산술 연산은 불가능
- 입출력 장치, 아날로그-디지털 변환기 등에 사용됨
- 예시 (3비트 기준):
2진수 | Gray 코드 |
000 | 000 |
001 | 001 |
010 | 011 |
011 | 010 |
100 | 110 |
101 | 111 |
110 | 101 |
111 | 100 |
🔤 2. 문자 표현을 위한 코드 (알파뉴메릭 코드)
2-1. ASCII (American Standard Code for Information Interchange)
- 설명: 미국 ANSI에서 제정한 문자 표준 코드
- 구성: 7비트로 128개 문자 표현 가능
- 범위:
- 영문자 대/소문자, 숫자, 기호, 제어 문자 등
2-2. EBCDIC (Extended Binary Coded Decimal Interchange Code)
- 설명: IBM에서 개발한 8비트 문자 코드
- 표현 가능 문자 수: 256개
- 주로 사용: IBM 대형 컴퓨터 시스템
2-3. Unicode (유니코드)
- 개요: ASCII의 한계 극복을 위한 범세계 문자 표준
- 특징:
- 전 세계 주요 언어 포함 (10만 개 이상 문자)
- 한자 70,000자 이상 포함
- 수학 기호, 기하학 기호, 이모지 등도 포함
- 용도: 웹, 모바일, 소프트웨어 국제화 표준
⚠️ 3. 에러 검출 및 수정용 코드
3-1. 패리티 비트 (Parity Bit)
- 기능: 데이터 전송 중 발생할 수 있는 에러를 검출
- 방식:
- 짝수 패리티 (Even parity): 전체 1의 개수가 짝수가 되도록 설정
- 홀수 패리티 (Odd parity): 전체 1의 개수가 홀수가 되도록 설정
- 한계: 에러 검출만 가능, 다중 에러 발생 시 한계 있음
3-2. 해밍 코드 (Hamming Code)
- 기능: 에러 검출 + 수정 가능
- 원리:
- 정보 비트 사이에 패리티 비트를 삽입하여 오류 위치 파악
- 조건식: 2^p ≥ d + p + 1 (p: 패리티 비트 수, d: 데이터 비트 수)
- 예시:
- 전송: 1011 → 해밍 코드로 변환 → P1 P2 1 P3 0 1 1
- 수신: 오류 위치 계산 후 해당 비트를 수정 가능
✅ 요약
구분 코드 특징
수치 표현 코드 | BCD (8421), 3초과, 그레이 코드 | BCD는 간단하나 연산 어려움, 그레이 코드는 1비트 변화 |
문자 표현 코드 | ASCII, EBCDIC, Unicode | ASCII는 128문자, EBCDIC은 IBM, 유니코드는 다국어 지원 |
에러 제어 코드 | 패리티, 해밍 코드 | 패리티는 검출, 해밍은 검출+수정 가능 |