학습(공부)하는 블로그 :: 2. 디지털 코드
 

 
반응형
블로그 이미지
학습하고 공부한 것을 보고 싶을때 다시 볼려고 요약해서 정리한 블로그입니다. 세상 돌아가는 이야기도 같이 나누고 공유합니다. 세상 살아가면서 알면 도움이 되는 것들을 서로 공유하고 삽시다. 깨비형
« 2026/3 »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

Archive»


Category»

Notice»

Recent Post»

Recent Comment»

Recent Trackback»

03-31 16:19

2. 디지털 코드

학과 수업 노트/디지털공학 | 2026. 3. 15. 18:41 | Posted by 깨비형
반응형

1BCD 코드 — 10진수를 2진수로 표현하기

BCD(Binary Coded Decimal)는 10진수 각 자리를 4비트 2진수로 따로 변환하는 코드입니다. 8421코드라고도 불리며, 표기는 2진수지만 의미는 10진수라 입출력이 간편합니다.

💡 BCD 핵심 특징
• 1010 ~ 1111 (6개)는 사용하지 않는 무효 코드
• 연산 결과가 9(1001)를 초과하면 +6(0110)을 더해 보정

▸ 10진수 956 → BCD 변환 예시

9 (백의 자리)

= 1001

|

5 (십의 자리)

= 0101

|

6 (일의 자리)

= 0110

956 →

1001 0101 0110

▸ BCD 연산 보정 규칙 — +6(0110) 보정이 필요한 경우

⚠️ ① BCD 덧셈 결과가 9(1001)를 초과할 때 (1010 ~ 1111 범위)
② 덧셈 중 올림(Carry)이 발생할 때
→ 보정 방법: 결과에 +6(0110)을 더함

✅ 예시 ① — 6 + 3 = 9 (보정 불필요)

6 (BCD) 0110
+ 3 (BCD) 0011
─────────────
결과 = 9 1001
9 ≤ 9 → 보정 불필요 ✓

⚠️ 예시 ② — 8 + 7 = 15 (보정 필요)

8 (BCD) 1000
+ 7 (BCD) 0111
─────────────
결과 = 1111 ← 9 초과!
+ 보정 0110
─────────────
0001 0101 = 15

▸ 3초과 코드와 가중치 코드 비교표

10진수3초과8421(BCD)2421542184-2-1
000110000000000000000
101000001000100010111
401110100010001000100
510000101101110001011
911001001111111001111
자기보수✓ 있음✗ 없음✓ 있음✗ 없음✓ 있음
가중치비가중치8,4,2,12,4,2,15,4,2,18,4,-2,-1
💡 자기보수 성질이란? 코드의 각 비트를 반전(0↔1)했을 때 그 결과가 원래 값의 9의 보수가 되는 성질입니다. 예: 2421 코드에서 4(0100) 반전 → 1011 = 5이고, 4+5=9. 자기보수 성질 덕분에 하드웨어 보수 연산 회로를 간단하게 만들 수 있습니다.

▸ 그레이 코드 (Gray Code) — 1비트씩만 바뀐다!

🔄 인접한 코드끼리 단 1비트만 변화 → 오차·잡음에 강함
비가중치 코드 → 산술 연산에는 부적합
아날로그-디지털 변환기(ADC), 입출력 장치에 주로 사용
2진 코드 ↔ 그레이 코드 변환은 XOR(⊕) 연산으로 처리

2진 → 그레이 변환

MSB는 그대로 → 이후 인접 비트 XOR
2진 0 1 1 1
그레이 0 1 0 0
0 / 0⊕1=1 / 1⊕1=0 / 1⊕1=0

그레이 → 2진 역변환

MSB 그대로 → 직전 2진 비트와 XOR
그레이 0 1 0 0
2진 0 1 1 1
0 / 0⊕1=1 / 1⊕0=1 / 1⊕0=1

2에러 검출·정정 코드

데이터 전송 중 발생하는 오류를 찾아내거나 고칠 수 있는 코드입니다. 단순한 패리티 비트부터 병렬 패리티, 해밍코드 순서로 강력해집니다.

▸ 패리티 비트 — 가장 간단한 에러 검출

짝수 패리티 (Even)

1의 개수가 짝수가 되도록 패리티 비트 결정

에러 없음: Y=0 / 에러 발생: Y=1

홀수 패리티 (Odd)

1의 개수가 홀수가 되도록 패리티 비트 결정

에러 없음: Y=1 / 에러 발생: Y=0

⚠️ 패리티 비트의 한계 — 1비트 에러는 검출 가능하지만 정정은 불가합니다. 2비트가 동시에 오류나면 패리티가 맞아 보여 검출 자체도 불가합니다.

▸ 병렬 패리티 — 에러 위치까지 찾아낼 수 있다!

📊 데이터를 블록(행×열) 단위로 구성해 가로·세로 모두 패리티 적용
1비트 에러 발생 시 행 패리티 + 열 패리티가 동시에 오류 → 교차점이 에러 위치
단순 패리티와 달리 에러 위치 특정 후 정정까지 가능

✅ 원본 블록 (에러 없음)

데이터1011행P=1
1000행P=1
0110행P=0
열P0101

가로·세로 모두 짝수 ✓ 정상

⚠️ 에러 발생 후 수신

데이터1001행P=0 ✗
1000행P=1
0110행P=0
열P0101 ✗

행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
기호: P₁ P₂ D₃ P₄ D₅ D₆ D₇
배치: ? ? 1 ? 0 0 1 ← 데이터 1001

P₁ (위치 1,3,5,7): P₁⊕101=0 → P₁=0
P₂ (위치 2,3,6,7): P₂⊕101=0 → P₂=0
P₄ (위치 4,5,6,7): P₄⊕001=1 → P₄=1

생성된 해밍코드 (P₁P₂D₃P₄D₅D₆D₇):
0 0 1 1 0 0 1
STEP 2 · 에러 주입 & 수신 측 검사
3번 비트(D₃=1) → 0으로 에러 발생
수신: 0 0 0 1 0 0 1

C₁ (1,3,5,7): 0⊕0⊕0⊕1 = 1 ← 불일치!
C₂ (2,3,6,7): 0⊕0⊕0⊕1 = 1 ← 불일치!
C₄ (4,5,6,7): 1⊕0⊕0⊕1 = 0 ← 일치

C₄C₂C₁ = 011 = 33번 위치 에러!
3번 비트 반전: 0 → 1
→ 원래 코드 0 0 1 1 0 0 1 복원 ✓

3영숫자 코드 — ASCII, EBCDIC, Unicode, 한글

문자를 컴퓨터에서 표현하기 위한 코드 체계입니다. 비트 수와 표현 가능한 문자 수, 용도가 각각 다릅니다.

🇺🇸

ASCII

7비트 → 128자

영문·숫자·특수문자·통신제어
PC·통신 분야 기본 표준

🖥️

EBCDIC

8비트 → 256자

BCD 확장형
IBM 대형컴퓨터 표준

🌐

Unicode

8/16/32비트 → 10만자+

전 세계 언어 포함
ASCII 완전 포함

▸ 영숫자 코드 상세 비교표

코드비트표현 수특징용도
ASCII7bit128자영문·숫자·통신제어PC·데이터통신 표준
표준 BCD6bit64자영문·숫자·특수문자초기 컴퓨터
EBCDIC8bit256자소문자·통신제어 추가IBM 대형컴퓨터
Unicode8~32bit10만자+전 세계 언어, ASCII 포함인터넷·글로벌 표준
한글 조합형16bit11,172자초·중·종성 각 5비트고어 포함 전체 한글
한글 완성형16bit2,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
: