자격증 정복/임베디드기사(기능사)
임베디드기능사 필기 04 — 수의 진법과 코드화 (진법변환·BCD·그레이코드·해밍코드)
올드 IT직장인
2026. 9. 17. 02:00
임베디드기능사 필기 04 — 수의 진법과 코드화 (진법변환·BCD·그레이코드·해밍코드)
출제기준 대단원 3: 수의 진법과 코드화
계산 문제가 많이 나오는 파트예요. 직접 풀어보는 연습 필수!
진법 종류 ⭐
2진수 (Binary) — 0, 1
8진수 (Octal) — 0~7
10진수 (Decimal) — 0~9
16진수 (Hexadecimal) — 0~9, A~F
진법 변환 ⭐⭐⭐
10진수 → 2진수
나눗셈 방법 (정수부):
13 ÷ 2 = 6 나머지 1
6 ÷ 2 = 3 나머지 0
3 ÷ 2 = 1 나머지 1
1 ÷ 2 = 0 나머지 1
→ 아래에서 위로 읽으면: 1101₂
소수부는 2를 곱해서 정수 부분 순서대로:
0.625 × 2 = 1.25 → 1
0.25 × 2 = 0.5 → 0
0.5 × 2 = 1.0 → 1
→ 0.101₂
2진수 → 16진수
4비트씩 묶어서 변환
1010 1111₂
→ A F₁₆ = AF₁₆
주요 변환표
| 10진수 | 2진수 | 8진수 | 16진수 |
| 0 | 0000 | 0 | 0 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
2진수 연산 ⭐⭐
덧셈
0+0=0 / 0+1=1 / 1+0=1 / 1+1=10(올림)
예: 1011 + 0110
1011
+ 0110
------
10001
보수 ⭐⭐
1의 보수: 각 비트를 반전
1010 → 0101
2의 보수: 1의 보수 + 1
1010 → 0101 + 1 = 0110
2의 보수 활용: 뺄셈을 덧셈으로 처리
A - B = A + (B의 2의 보수)
8비트 2의 보수 표현 범위: -128 ~ +127
기출 문제
Q. 10진수 -5를 8비트 2의 보수로 표현하면?
A.
+5 = 00000101
1의 보수: 11111010
2의 보수: 11111011
BCD 코드 ⭐⭐
10진수 한 자리를 4비트 2진수로 표현
8421 코드라고도 함
10진수 29 → BCD
2 = 0010
9 = 1001
→ BCD: 0010 1001
⚠️ BCD ≠ 2진수
29₁₀ = 0001 1101₂ (순수 2진수)
29₁₀ = 0010 1001 BCD (BCD 코드)
3초과 코드 (Excess-3) ⭐
BCD + 3
0 = 0000+3 = 0011
1 = 0001+3 = 0100
5 = 0101+3 = 1000
9 = 1001+3 = 1100
자기 보수(Self-Complementing) 코드
→ 9의 보수가 1과 0을 바꾸면 나옴
그레이 코드 ⭐⭐
인접한 두 수가 1비트만 다른 코드
아날로그-디지털 변환, 회전 센서에 활용
2진수 → 그레이코드:
MSB는 그대로
나머지: 이전 비트 XOR 현재 비트
예: 2진수 1011 → 그레이코드
1 → 1
1 XOR 0 → 1
0 XOR 1 → 1
1 XOR 1 → 0
→ 1110
그레이코드 → 2진수:
MSB는 그대로
나머지: 이전 2진수 비트 XOR 현재 그레이비트
예: 그레이코드 1111 → 2진수
1 → 1
1 XOR 1 → 0
0 XOR 1 → 1
1 XOR 1 → 0
→ 1010
해밍 코드 ⭐⭐
오류 검출 및 정정이 가능한 코드
패리티 비트 수 계산:
2ᵖ ≥ m + p + 1
m: 데이터 비트 수, p: 패리티 비트 수
데이터 4비트 → p=3 (2³=8 ≥ 4+3+1=8)
데이터 8비트 → p=4 (2⁴=16 ≥ 8+4+1=13)
패리티 비트 위치: 1, 2, 4, 8, 16... (2의 거듭제곱)
패리티 비트 ⭐
짝수 패리티: 1의 개수가 짝수가 되도록
홀수 패리티: 1의 개수가 홀수가 되도록
단점: 2비트 동시 오류는 검출 불가
💡 실무에서는?
보안 시스템에서 데이터 무결성 확인에 해밍코드 원리가 쓰여요.
그레이코드는 회전 인코더, 절대 위치 센서에서 필수 사용되는 코드예요.
핵심 정리
✅ 진법 변환: 나눗셈(정수부), 곱셈(소수부)
✅ 2진수→16진수: 4비트씩 묶음
✅ 2의 보수: 1의 보수+1 / 뺄셈에 활용
✅ 8비트 2의 보수 범위: -128~+127
✅ BCD = 10진수 한 자리를 4비트로 (8421코드)
✅ 3초과 = BCD+3, 자기보수코드
✅ 그레이코드: 인접 수가 1비트만 다름
✅ 해밍코드: 2ᵖ≥m+p+1
4비트→3개 / 8비트→4개
다음 편에서는 불 대수와 카르노맵으로 이어갑니다!
반응형