공식 5, 문제 34
수 체계·코드
진법, 보수, BCD, 그레이, 해밍, 패리티
진법 변환
- 10진 → n진: 정수부는 n으로 나눈 나머지를 아래→위, 소수부는 n을 곱한 정수부를 위→아래로 읽기
- 2 ↔ 8 ↔ 16진: 2진수를 소수점 기준으로 3비트(8진)·4비트(16진)씩 묶기
- 분모가 2의 거듭제곱이 아닌 10진 소수(0.1 등)는 2진수로 무한 순환
보수와 음수 표현 (n비트)
| 방식 | 범위 | 0의 표현 |
|---|
| 부호-크기 | −(2n−1−1) ~ 2n−1−1 | +0, −0 |
| 1의 보수 | −(2n−1−1) ~ 2n−1−1 | +0, −0 |
| 2의 보수 | −2n−1 ~ 2n−1−1 | 하나 |
- 2의 보수 = 비트 반전 + 1 (또는 오른쪽부터 처음 1까지 그대로, 나머지 반전)
- 2의 보수 덧셈에서 MSB 자리올림은 버림, 1의 보수는 끝자리 올림(end-around carry)
- 오버플로: 같은 부호끼리 더했는데 결과 부호가 다를 때 ( Cn⊕Cn−1=1 )
코드
| 코드 | 가중치 | 특징 |
|---|
| BCD(8421) | ○ | 10진 한 자리 = 4비트, 1010~1111 미사용 |
| 2421, 5421 | ○ | 2421은 자기보수 |
| 3초과(Excess-3) | × | BCD+3, 자기보수, 연산 용이 |
| 그레이 | × | 인접 값 1비트 변화, A/D·인코더 |
| ASCII | — | 7비트(128자), 패리티 포함 8비트 |
| EBCDIC | — | 8비트(256자), IBM |
오류 검출·정정
- 패리티: 1비트 오류 검출만 가능 (짝수/홀수)
- 해밍 코드: 2p≥m+p+1, 패리티 위치 1, 2, 4, 8… (2의 거듭제곱), 1비트 정정
- 해밍 거리 d: 검출 d−1비트, 정정 ⌊(d−1)/2⌋비트
- CRC: 다항식 나눗셈, 연집 오류(burst) 검출에 강함
핵심 공식
자주 틀리는 포인트
- 0.1₁₀은 2진수로 정확히 표현 불가
- −127~127은 1의 보수 범위, 2의 보수는 −128~127
- 그레이·3초과는 비가중치 코드