누구나 쉽게 배우는 진수 - 8장. 보너스 개념: 진수와 컴퓨터 구조

2025. 3. 28. 17:16소프트웨어/기초

 

✅ 8장. 보너스 개념: 진수와 컴퓨터 구조


📌 왜 이 개념이 중요할까요?

컴퓨터는 모든 정보를 2진수(0과 1) 로 저장합니다.
이때 숫자의 종류에 따라 표현 방식이 달라지며,
그 핵심에는 진수 개념이 존재합니다.

표현 대상 사용 방식
정수 (양수/음수) 2의 보수
실수 (소수) 부동소수점
데이터 단위 비트, 바이트, 킬로바이트 등
진수 변환 비트 기준 정렬 (3비트 = 8진수, 4비트 = 16진수)

🔁 1) 음수 표현: 2의 보수법

🔹 개념 요약

컴퓨터는 덧셈 연산만 지원하므로,
음수도 양수처럼 덧셈으로 계산될 수 있도록 표현해야 합니다.
→ 이를 위해 사용하는 방법이 2의 보수(Two’s Complement) 입니다.


🔸 표현 방법

어떤 수의 2의 보수 = 1의 보수(반전) + 1

예: -5를 8비트로 표현

  1. 5 → 00000101
  2. 반전 (1의 보수): 11111010
  3. +1 → 11111011 → ✔️ -5의 2의 보수 표현

🔸 실제 연산 예시 (덧셈으로 뺄셈 처리)

예: 7 - 5

→ 7 + (-5) 로 계산

항목 2진수 (8비트)
7 00000111
-5 (2의 보수) 11111011
  00000111
+ 11111011
-----------
1 00000010   → 오버플로우 1 무시
→ 결과: `00000010` = 2

✅ 뺄셈 없이 덧셈만으로 결과 도출!


📐 2) 실수 표현: 부동소수점 (Floating Point)

정수 외의 숫자(소수 등)는 고정된 방식으로 정확히 표현하기 어렵기 때문에,
근사치 표현 방식인 IEEE 754 부동소수점 포맷이 사용됩니다.


🔸 IEEE 754 구조 (32비트 기준, 단정도)

구성 요소 비트 수 설명
부호 (Sign) 1비트 0: 양수, 1: 음수
지수 (Exponent) 8비트 2의 거듭제곱 (Bias 127 적용)
가수 (Mantissa) 23비트 소수점 이하의 유효 숫자들

🔸 예: 3.14 표현 방식

  1. 2진수 변환:
    3.14 ≈ 11.001001...
  2. 정규화:
    1.1001001... × 2¹
  3. 지수 계산:
    • 실제 지수: 1
    • 저장 지수 = 1 + 127 (Bias) = 128 → 10000000
  4. 가수:
    • 소수점 이하만 저장 → 10010010000111111011011
  5. 부호:
    • 양수 → 0

🔸 최종 비트 구조 (32비트)

S | Exponent      | Mantissa
0   10000000       10010010000111111011011

➡️ 이것이 컴퓨터가 3.14를 저장하는 방식입니다 (근사값).


🔢 3) 비트(Bit), 바이트(Byte)와 진수의 관계


🔸 기본 단위

단위 정의
비트 (bit) 정보의 최소 단위 (0 또는 1)
바이트 (byte) 8비트 (1문자 저장 가능)
워드 (word) CPU가 한 번에 처리하는 데이터 크기 (32/64비트 등)

🔸 단위 확장

단위 크기 약칭
1KB 1,024 B Kilobyte
1MB 1,024 KB Megabyte
1GB 1,024 MB Gigabyte
1TB 1,024 GB Terabyte

2의 거듭제곱 단위 사용 → 이진 구조 기반 시스템과 호환성 높음


🔸 진수와 비트의 대응

진수 비트 수 설명
2진수 1자리 = 1비트 1011₂
8진수 1자리 = 3비트 111₂ = 7₈
16진수 1자리 = 4비트 1111₂ = F₁₆

3비트 단위 = 8진수 / 4비트 단위 = 16진수


📊 요약표

항목 개념 요약 예시
2의 보수 음수 표현 방식 (1의 보수 + 1) -5 = 11111011
부동소수점 실수 표현 (IEEE 754) 3.14 ≈ 01000000...
비트/바이트 데이터 최소/기본 단위 1바이트 = 8비트
단위 확장 저장 단위 확장 (2ⁿ 기준) 1KB = 1,024B
진수-비트 비트 수로 진수 변환 가능 16진수 = 4비트

📝 연습문제

Q1. 8비트 기준에서 -1의 2의 보수 표현은?
Q2. 1.5의 부동소수점 표현에서 지수 값은 얼마인가요?
Q3. 1KB는 몇 바이트인가요?
Q4. 16진수 2자리는 몇 비트인가요?


✅ 정답

  • Q1:
    → 00000001 → 반전: 11111110 +1 → 11111111
  • Q2:
    1.5 = 1.1₂ = 1.1 × 2⁰ → 지수 = 0 + 127 = 127 → 01111111
  • Q3:
    1KB = 1,024바이트
  • Q4:
    1자리 = 4비트 → 2자리 = 8비트