1️⃣ 부호와 절댓값(Sign and Magnitude)
- 첫 번째 비트를 부호 비트로 사용 (0: 양수, 1: 음수)
- 나머지 비트는 절댓값을 2진수로 표현
예시 (8비트 기준):
정수 부호와 절댓값
| +5 | 00000101 |
| -5 | 10000101 |
🔸 단점: 0을 +0, -0 두 가지로 표현하게 됨 → 연산 불편
2️⃣ 1의 보수(One's Complement)
- 양수는 일반 이진수 사용
- 음수는 모든 비트를 반전 (0 ↔ 1)
예시:
정수 1의 보수 표현
| +5 | 00000101 |
| -5 | 11111010 |
🔸 단점: 여전히 0이 +0, -0 두 가지 존재
🔸 덧셈 시 자리 올림이 있으면 +1 해야 함 (end-around carry)
3️⃣ 2의 보수(Two's Complement)
- 음수를 표현할 때 1의 보수에 1을 더함
- 덧셈, 뺄셈 연산을 같은 회로로 처리 가능
예시:
정수 2의 보수 표현
| +5 | 00000101 |
| -5 | 11111011 |
✅ 장점:
- 0은 하나만 존재
- 하드웨어 연산이 간단해짐
→ 가장 널리 사용되는 방식
4️⃣ 정수 연산 방법
➕ 덧셈
2의 보수 방식에서는 음수도 덧셈으로 처리 가능!
5 + (-3)
= 00000101 + 11111101
= 00000010 → 2
➖ 뺄셈
뺄셈도 덧셈으로 변환하여 처리 (a - b → a + (-b))
5 - 3
= 00000101 + 11111101
= 00000010 → 2
5️⃣ 곱셈과 나눗셈
- 곱셈: 시프트와 덧셈을 조합하여 구현
- 나눗셈: 반복적인 뺄셈과 시프트로 처리
- 정수 범위를 초과하지 않도록 주의
6️⃣ 고정소수점 표현(Fixed-point)
- 정수와 소수점을 고정된 위치에 두고 표현
- 예: 소수점 아래 2자리로 고정하면 1.75 → 175 (100배)
- 실수 표현이 필요하지만 부동소수점 사용이 부담스러울 때 사용
🔸 장점: 빠른 연산, 간단한 구조
🔸 단점: 표현 범위 제한, 정밀도 손실
🧠 정리 표
표현 방식 0 표현 음수 표현 방법 장점 단점
| 부호와 절댓값 | +0, -0 | 부호 비트 + 이진수 | 구조 간단 | 덧셈, 뺄셈 연산 복잡 |
| 1의 보수 | +0, -0 | 비트 반전 | 음수 연산 가능 | 자리올림 추가 처리 필요 |
| 2의 보수 | 0 하나 | 비트 반전 + 1 | 연산 효율 최고 (기계 구현 용이) | 최대값 범위 1 줄어듦 |
| 고정소수점 | - | 정수 표현에 소수 포함 | 실수처럼 표현 가능 | 소수점 위치 고정, 정밀도↓ |