정보통신기사 필기

🔤 자료 표현 · 코드 체계 (5과목)

컴퓨터는 0과 1밖에 모른다. 그래서 숫자·문자·부호를 어떤 규칙으로 0과 1에 대응시킬 것인가 가 문제가 되고, 그 규칙들이 곧 코드 체계다. 진수 변환이 계산이라면 이 단원은 약속을 다룬다.
📦 자료의 단위
비트(Bit) ─ 0 또는 1, 정보의 최소 단위 └ 니블(Nibble) = 4비트 = 16진수 한 자리 └ 바이트(Byte) = 8비트 = 문자 1개 = 16진수 두 자리 └ 워드(Word) = CPU가 한 번에 처리하는 단위 (Half 2 / Full 4 / Double 8 byte) └ 필드 → 레코드 → 파일 → 데이터베이스
🔢 수치 자료 표현 — 고정소수점 vs 부동소수점
방식구조특징
부호와 절대치맨 앞 1비트 = 부호, 나머지 = 크기 가장 단순하지만 0이 +0과 −0 두 개로 표현됨
1의 보수모든 비트 반전 8비트 범위 −127 ~ +127. 역시 0이 두 개
2의 보수1의 보수 + 1 8비트 범위 −128 ~ +127. 0이 하나뿐 → 실제로 사용되는 방식
부동소수점부호(1) + 지수부 + 가수부 표현 범위가 매우 넓음. 대신 연산이 느리고 회로가 복잡
팩 / 언팩 10진10진수를 4비트씩 묶어 저장 팩은 1바이트에 두 자리, 언팩은 한 자리. 사무·금융 연산용
📖 2의 보수 표현 범위 공식
n비트 2의 보수 → −2ⁿ⁻¹ ~ +(2ⁿ⁻¹ − 1)
8비트 → −128 ~ +127  ·  16비트 → −32,768 ~ +32,767

음수 쪽이 하나 더 많은 이유는 0을 양수 쪽에서 한 자리 쓰기 때문이다.
부동소수점 정규화 — 가수부의 첫 자리가 0이 되지 않도록 소수점 위치를 조정하는 것. 같은 값을 여러 방식으로 표현할 수 있는 문제를 없애고 정밀도를 최대로 확보한다.
🌳 코드의 분류 — 계통부터 잡기
코드 ├─ 가중치 코드 (Weighted) — 각 자리에 고정된 값이 있음 │ BCD(8421) · 2421 · 51111 · 바이퀴너리 │ ├─ 비가중치 코드 (Non-weighted) — 자릿값이 없음 │ 3초과(Excess-3) · 그레이(Gray) │ ├─ 자기보수 코드 (Self-complementing) │ 3초과 · 2421 · 51111 · 84-2-1 │ → 1의 보수를 취하면 그대로 9의 보수가 되는 코드 │ └─ 오류검출 코드 패리티 · 해밍 · 바이퀴너리 · 링카운터 · 2 out of 5
코드분류특징 · 출제 포인트
BCD (8421)가중치 10진 한 자리를 4비트로. 1010~1111은 사용하지 않음(6개 미사용) 기출
3초과
Excess-3
비가중치
자기보수
BCD에 +3(0011). 10진 0 = 0011, 9 = 1100
그레이
Gray
비가중치 인접한 두 수가 단 1비트만 다름 → 아날로그/디지털 변환 오차 방지, 위치 검출기
2421 / 51111가중치
자기보수
자릿값이 8421이 아닌 변형 코드
바이퀴너리가중치
오류검출
7비트(5043210). 항상 1이 2개
2 out of 5오류검출5비트 중 정확히 2개가 1 → 개수만 세도 오류 판별
해밍 코드오류정정검사비트 2ʳ ≥ n+r+1. 1비트 정정 · 2비트 검출
⚠ 최다 함정 — 자기보수 코드
"1의 보수를 취했을 때 9의 보수가 되는 코드" 를 묻는 문제가 반복 출제된다. 답은 3초과 · 2421 · 51111 · 84-2-1. BCD(8421)는 자기보수 코드가 아니다 — 이것이 오답 유도 1순위다.
🔁 그레이 코드 변환 — 계산 문제
2진 → 그레이 (최상위는 그대로, 나머지는 이웃 비트끼리 XOR) 2진 1 0 1 1 │ ╲ │╲ │╲ ↓ ⊕ ⊕ ⊕ 그레이 1 1 1 0 ① 1 그대로 ② 1⊕0=1 ③ 0⊕1=1 ④ 1⊕1=0 → 1110 그레이 → 2진 (최상위는 그대로, 이후 앞의 "결과"와 XOR) 그레이 1 1 1 0 2진 1 0 1 1 ① 1 그대로 ② 1⊕1=0 ③ 0⊕1=1 ④ 1⊕0=1 → 1011
차이가 딱 하나 — 2진→그레이는 원본끼리 XOR, 그레이→2진은 방금 구한 결과와 XOR. 이 하나만 구분하면 양방향 모두 풀린다.
🔡 문자 코드 비교
코드비트 수표현 개수비고
BCD 코드6비트64자존 2 + 디지트 4. 영문 소문자 표현 불가
ASCII7비트128자 존 3 + 디지트 4. 데이터 통신 표준. 'A'=65, 'a'=97, '0'=48 기출
EBCDIC8비트256자존 4 + 디지트 4. IBM 대형 컴퓨터용
유니코드16비트65,536자전 세계 문자 통합. 한글 포함
📖 외우는 법 — 6 · 7 · 8 · 16 순서로 커진다. BCD(6) → ASCII(7) → EBCDIC(8) → 유니코드(16). 표현 개수는 각각 2ⁿ이다.
'A'=65인 것만 알면 'a'=97(+32), '0'=48은 자동으로 따라온다.
🔗 이어지는 단원
📝 시험 포인트
• 니블 4 · 바이트 8 · 16진 한 자리 = 4비트
• 2의 보수 n비트 범위 = −2ⁿ⁻¹ ~ 2ⁿ⁻¹−1 (8비트 −128~+127)
• 가중치 = BCD·2421·51111 / 비가중치 = 3초과·그레이
• 자기보수 = 3초과·2421·51111·84-2-1 (BCD는 아님!)
• 그레이 = 인접 수가 1비트만 차이 → A/D 변환 오차 방지
• BCD 6 / ASCII 7 / EBCDIC 8 / 유니코드 16 비트
• BCD는 1010~1111 미사용