1BCD 코드 — 10진수를 2진수로 표현하기
BCD(Binary Coded Decimal)는 10진수 각 자리를 4비트 2진수로 따로 변환하는 코드입니다. 8421코드라고도 불리며, 표기는 2진수지만 의미는 10진수라 입출력이 간편합니다.
| 💡 |
BCD 핵심 특징 • 1010 ~ 1111 (6개)는 사용하지 않는 무효 코드 • 연산 결과가 9(1001)를 초과하면 +6(0110)을 더해 보정 |
▸ 10진수 956 → BCD 변환 예시
|
▸ BCD 연산 보정 규칙 — +6(0110) 보정이 필요한 경우
| ⚠️ |
① BCD 덧셈 결과가 9(1001)를 초과할 때 (1010 ~ 1111 범위) ② 덧셈 중 올림(Carry)이 발생할 때 → 보정 방법: 결과에 +6(0110)을 더함 |
|
✅ 예시 ① — 6 + 3 = 9 (보정 불필요)
|
⚠️ 예시 ② — 8 + 7 = 15 (보정 필요)
|
▸ 3초과 코드와 가중치 코드 비교표
| 10진수 | 3초과 | 8421(BCD) | 2421 | 5421 | 84-2-1 |
| 0 | 0011 | 0000 | 0000 | 0000 | 0000 |
| 1 | 0100 | 0001 | 0001 | 0001 | 0111 |
| 4 | 0111 | 0100 | 0100 | 0100 | 0100 |
| 5 | 1000 | 0101 | 1011 | 1000 | 1011 |
| 9 | 1100 | 1001 | 1111 | 1100 | 1111 |
| 자기보수 | ✓ 있음 | ✗ 없음 | ✓ 있음 | ✗ 없음 | ✓ 있음 |
| 가중치 | 비가중치 | 8,4,2,1 | 2,4,2,1 | 5,4,2,1 | 8,4,-2,-1 |
| 💡 | 자기보수 성질이란? 코드의 각 비트를 반전(0↔1)했을 때 그 결과가 원래 값의 9의 보수가 되는 성질입니다. 예: 2421 코드에서 4(0100) 반전 → 1011 = 5이고, 4+5=9. 자기보수 성질 덕분에 하드웨어 보수 연산 회로를 간단하게 만들 수 있습니다. |
▸ 그레이 코드 (Gray Code) — 1비트씩만 바뀐다!
| 🔄 |
인접한 코드끼리 단 1비트만 변화 → 오차·잡음에 강함 비가중치 코드 → 산술 연산에는 부적합 아날로그-디지털 변환기(ADC), 입출력 장치에 주로 사용 2진 코드 ↔ 그레이 코드 변환은 XOR(⊕) 연산으로 처리 |
|
2진 → 그레이 변환
|
그레이 → 2진 역변환
|
2에러 검출·정정 코드
데이터 전송 중 발생하는 오류를 찾아내거나 고칠 수 있는 코드입니다. 단순한 패리티 비트부터 병렬 패리티, 해밍코드 순서로 강력해집니다.
▸ 패리티 비트 — 가장 간단한 에러 검출
|
짝수 패리티 (Even) 1의 개수가 짝수가 되도록 패리티 비트 결정 에러 없음: Y=0 / 에러 발생: Y=1 |
홀수 패리티 (Odd) 1의 개수가 홀수가 되도록 패리티 비트 결정 에러 없음: Y=1 / 에러 발생: Y=0 |
| ⚠️ | 패리티 비트의 한계 — 1비트 에러는 검출 가능하지만 정정은 불가합니다. 2비트가 동시에 오류나면 패리티가 맞아 보여 검출 자체도 불가합니다. |
▸ 병렬 패리티 — 에러 위치까지 찾아낼 수 있다!
| 📊 |
데이터를 블록(행×열) 단위로 구성해 가로·세로 모두 패리티 적용 1비트 에러 발생 시 행 패리티 + 열 패리티가 동시에 오류 → 교차점이 에러 위치 단순 패리티와 달리 에러 위치 특정 후 정정까지 가능 |
|
✅ 원본 블록 (에러 없음)
가로·세로 모두 짝수 ✓ 정상 |
⚠️ 에러 발생 후 수신
행1 ✗ × 열2 ✗ 교차점 → 에러 위치 특정! |
▸ 해밍코드 — 에러를 직접 고칠 수 있다!
| 🔧 |
패리티 비트 위치: 1, 2, 4, 8, 16… (2의 거듭제곱) 수신 측에서 각 패리티 영역 검사 → 결과값이 에러 발생 위치 번호 검사 결과 P₈P₄P₂P₁을 2진수로 읽으면 → 에러 위치 |
해밍코드 에러 정정 3단계
1각 패리티 영역별 XOR 검사 — P₁, P₂, P₄, P₈ 각 영역 비트를 모두 XOR. 결과 0=정상, 1=에러
2에러 위치 번호 계산 — 검사 결과를 P₈P₄P₂P₁ 순서로 나열 → 2진수로 읽으면 에러 위치
3해당 비트 반전으로 정정 — 에러 위치의 비트를 0↔1 반전하면 원래 데이터 복원
완전 예제 — 데이터 1001로 해밍코드 생성 & 검사 (4비트 → 7비트)
| STEP 1 · 해밍코드 생성 |
위치: 1 2 3 4 5 6 7 |
| STEP 2 · 에러 주입 & 수신 측 검사 |
3번 비트(D₃=1) → 0으로 에러 발생 |
3영숫자 코드 — ASCII, EBCDIC, Unicode, 한글
문자를 컴퓨터에서 표현하기 위한 코드 체계입니다. 비트 수와 표현 가능한 문자 수, 용도가 각각 다릅니다.
|
🇺🇸 ASCII 7비트 → 128자 영문·숫자·특수문자·통신제어 |
🖥️ EBCDIC 8비트 → 256자 BCD 확장형 |
🌐 Unicode 8/16/32비트 → 10만자+ 전 세계 언어 포함 |
▸ 영숫자 코드 상세 비교표
| 코드 | 비트 | 표현 수 | 특징 | 용도 |
| ASCII | 7bit | 128자 | 영문·숫자·통신제어 | PC·데이터통신 표준 |
| 표준 BCD | 6bit | 64자 | 영문·숫자·특수문자 | 초기 컴퓨터 |
| EBCDIC | 8bit | 256자 | 소문자·통신제어 추가 | IBM 대형컴퓨터 |
| Unicode | 8~32bit | 10만자+ | 전 세계 언어, ASCII 포함 | 인터넷·글로벌 표준 |
| 한글 조합형 | 16bit | 11,172자 | 초·중·종성 각 5비트 | 고어 포함 전체 한글 |
| 한글 완성형 | 16bit | 2,350자 | 음절 단위 1:1 대응 | KS 표준, 현재 가장 많이 사용 |
|
🔡 한글 조합형 자음·모음 단위 저장 → 고어 포함 모든 한글 표현 가능 |
🔤 한글 완성형 음절 단위 저장 → 처리 빠름, KS 표준 |
🏷 태그 키워드
BCD 코드 변환3초과코드 자기보수그레이코드 변환패리티비트 에러검출병렬패리티 블록패리티해밍코드 에러정정ASCII 코드 구조유니코드 ASCII 관계한글 조합형 완성형디지털공학 기초
'학과 수업 노트 > 디지털공학' 카테고리의 다른 글
| 5. 논리식의 간소화 (0) | 2026.03.31 |
|---|---|
| 4. 불 대수 (0) | 2026.03.27 |
| 3. 논리 게이트 (1) (0) | 2026.03.19 |
| 1. 디지털 시스템의 이해 (0) | 2026.03.09 |

