
숫자를 표현하고 저장하는 규칙과 기호 체계
컴퓨터와 수학에서 숫자가 어떻게 쓰이고, 저장되고, 처리되는지 정의
컴퓨터는 모든 데이터를 이진수(Binary digits) 형태로 저장
현실 세계 대부분의 데이터는 연속적인 아날로그(Analog) 형태
예: 온도, 속도, 질량 등
컴퓨터는 이를 디지털(Digital) 값, 즉 이진수(bit) 로 변환하여 저장
따라서 모든 아날로그 데이터 -> 디지털 변환 필요
숫자는 진수(base) 에 따라 각 자리값이 달라짐
예: aₙ₋₁ aₙ₋₂ ... a₁ a₀.a₋₁ a₋₂ ... a₋ₘ
가장 왼쪽: 최상위 자리수 (MSD)
가장 오른쪽: 최하위 자리수 (LSD)
| 진법 (System) | 기수 (Base) | 사용 기호 (Symbols) | 사람이 사용? | 컴퓨터에서 사용? |
|---|---|---|---|---|
| Decimal (10진수) | 10 | 0, 1, 2, ..., 9 | ✅ Yes | ❌ No |
| Binary (2진수) | 2 | 0, 1 | ❌ No | ✅ Yes |
| Octal (8진수) | 8 | 0, 1, ..., 7 | ❌ No | ❌ No |
| Hexadecimal (16진수) | 16 | 0~9, A~F (A=10 ~ F=15) | ❌ No | ❌ No |
10진수 : 352₁₀ = 3×10² + 5×10¹ + 2×10⁰
2진수 : 1011₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 11
8진수 : 745₈ = 7×8² + 4×8¹ + 5×8⁰ = 485
16진수 : 2F₁₆ = 2×16¹ + 15×16⁰ = 47
2진수(Binary): 디지털 회로에서 사용됨 (전기 신호 ON=1, OFF=0)
8진수/16진수: 긴 이진수를 짧게(shorthand) 표현하는 방식
10진수: 사용자 인터페이스에서 사용 (사람이 가장 익숙함)
| 지수 (Power) | 접두어 (Prefix) | 기호 (Symbol) | 값 (Value) |
|---|---|---|---|
| 10⁻¹² | pico | p | 0.000000000001 |
| 10⁻⁹ | nano | n | 0.000000001 |
| 10⁻⁶ | micro | μ | 0.000001 |
| 10⁻³ | milli | m | 0.001 |
| 10³ | kilo | k | 1,000 |
| 10⁶ | mega | M | 1,000,000 |
| 10⁹ | giga | G | 1,000,000,000 |
| 10¹² | tera | T | 1,000,000,000,000 |
nibble = 4 bits
byte = 8 bits
word = 2 bytes = 16 bits
double word = 4 bytes = 32 bits
long word = 8 bytes = 64 bits
1K (kilo) = 2¹⁰ = 1024
1M (mega) = 2²⁰ = 1,048,576
1G (giga) = 2³⁰ = 1,073,741,824
| 지수 (Power) | 접두어 (Prefix) | 기호 (Symbol) | 값 (Value) |
|---|---|---|---|
| 2¹⁰ | kilo | k | 1,024 |
| 2²⁰ | mega | M | 1,048,576 |
| 2³⁰ | giga | G | 1,073,741,824 |
2로 나눠가며 나머지를 저장

8로 나눠가며 나머지를 저장

16으로 나눠가며 나머지를 저장

각 자리 수에 2ⁿ을 곱해서 더하기

3자리씩 끊어서 8진수로 변환

4자리씩 끊어서 16진수로 변환

각 자리수에 8ⁿ을 곱해서 더하기

각 숫자를 3자리 이진수로 치환

Oct → Binary → Hex 로 중간에 Binary 거치기 (권장 경로)

각 자리수에 16ⁿ을 곱해서 더하기

각 숫자를 4자리 이진수로 치환

Hex → Binary → Octal 로 변환 (중간에 Binary 거치기)

n비트 값 두 개를 자리별로 더함
자리 올림(carry) 발생 시 다음 자리로 전파

n비트 값 두 개를 뺄셈
자리 차용(borrow) 규칙 적용 (10₂ - 1 = 1, borrow 발생)
10진수 뺄셈과 유사하나 2진수 기준으로 진행

10진수 곱셈과 유사한 방식 사용
각 자리 곱하고, 자릿수만큼 shift 후 모두 더함

이진수 소수점 오른쪽 자리는 2의 음수 제곱
각 자리수에 대해 비트 × 2^(-자리) 계산 후 합산

정수 부분은 2로 나누어 몫/나머지를 사용해 변환
소수 부분은 2를 곱해 정수부만 따로 저장하고 나머지 계속 곱하기

이진수에서 음수를 표현하려면 부호(Signed) 방식 필요
방법 2가지 :
1의 보수 (One’s Complement)
2의 보수 (Two’s Complement) -> 실제 사용됨
MSB(Most Significant Bit, 최상위 비트) 사용 :
0 -> 양수
1 -> 음수
모든 비트를 반전 (1 → 0, 0 → 1)
+5 = 0101
-5 = 1010 (모든 비트 반전)
0이 두 개로 표현됨
0000 = +0
1111 = -0
계산 비효율, 사용하지 않음
1의 보수 후, 1을 더함
예시 (4비트 기준):
+5 = 0101
-5 = 1011 (0101 -> 1010 -> 1011)
간단 요령:
(1) 오른쪽부터 첫 번째 1까지는 그대로 유지
(2) 그 왼쪽 비트는 모두 반전


개념 요약
A - B는 → A + (-B) 로 처리함
-B는 B의 2의 보수와 같음
따라서 다음 두 단계로 처리:
(1) B의 2의 보수를 구한다
(2) A + (-B)를 수행한다
예제1 (양수 결과)

예제2 (음수 결과)
