컴퓨터가 다루는 모든 정보는 0과 1, 즉 2진수로 표현됩니다.
이번 글에서는 데이터의 기본 단위인 비트(bit), 바이트(byte), 그리고 CPU가 처리하는 워드(word) 개념까지 간단하게 정리합니다.
1. 비트(bit)
- 0과 1을 나타내는 가장 작은 정보 단위
- 1비트는 두 가지 값(0 또는 1)을 표현
- 비트 수가 늘어날수록 표현 가능한 정보량 증가
- 2비트 → 4개(2²)
- 3비트 → 8개(2³)
- N비트 → 2ᴺ개
2. 바이트(byte)
- 8개의 비트를 묶어 하나의 바이트로 사용
- 1바이트가 표현할 수 있는 값의 개수: 256개 (2⁸)
1️⃣ 단위 변환(SI 기준)
| 구분 | 바이트 |
| 1 byte | 8 비트 |
| 1 kB | 1,000 비트 |
| 1 MB | 1,000 kB |
| 1 GB | 1,000 MB |
| 1 TB | 1,000 GB |
3. 워드(word)
- CPU가 한 번에 처리할 수 있는 데이터의 크기
- CPU 구조에 따라 다름
- 16비트를 한 번에 처리 → 워드 = 16비트
- 32비트를 처리 → 워드 = 32비트
- 64비트를 처리 → 워드 = 64비트 (현대 CPU 대부분)
즉, 워드 크기가 클수록 한 번에 더 많은 데이터 처리 가능.
4. 0과 1로 숫자 표현하기
- 10진수 숫자를 2진수로 변환할 때, 값이 커지면 자리올림 발생
- 2진수 표기는
- 뒤에 (2)를 붙이거나
- 앞에 0b 를 붙여 표현
예)
- 10진수 1 → 2진수 1
- 10진수 2 → 2진수 10
- 10진수 3 → 2진수 11
- 10진수 4 → 2진수 100
5. 16진법(hexadecimal)
2진수는 길이가 너무 길어지므로, 사람이 보기 쉽게 16진수도 함께 사용합니다.
16진수 특징
- 10~15는 각각 A, B, C, D, E, F
- 2진수를 4비트 단위로 묶으면 16진수로 쉽게 변환 가능
- 표기 방식: 뒤에 (16) 또는 앞에 0x 사용
예)
- 10진수 255 → 16진수 0xFF
- MAC 주소, IPv6 주소에서도 16진수 사용
6. 데이터: 소수 표현
컴퓨터가 실수를 표현할 때 중요한 점:
👉 우리가 표현하고자 하는 값과 실제로 저장되는 값 사이에 오차가 발생할 수 있음
예를 들어,
a = 0.1
b = 0.2
c = 0.3
if a + b == c:
print("Equal")
else:
print("Not Equal")
이 코드는 "Not Equal" 을 출력함.
이유는 0.1, 0.2, 0.3이 2진수로 정확히 나누어떨어지지 않아 오차가 생기기 때문.
즉, 부동소수점(floating point)의 정밀도에는 한계가 존재한다는 점이 핵심입니다.
정리하면
이번 글에서 다룬 내용:
- 비트와 바이트는 데이터 표현의 기본 단위
- CPU의 워드 크기는 처리 능력과 직결
- 숫자는 2진수로 표현되고, 사람이 읽기 쉽도록 16진수도 사용
- 실수는 완벽히 표현되지 않아 오차가 발생할 수 있음
컴퓨터 구조의 첫 단추인 "데이터 표현"을 이해하면 이후의 명령어 처리, 메모리 구조, CPU 동작 등도 훨씬 쉽게 이어집니다.
'컴퓨터 과학' 카테고리의 다른 글
| [컴퓨터 구조] CPU - 인터럽트 (0) | 2025.11.23 |
|---|---|
| [컴퓨터 구조] CPU - 레지스터 (0) | 2025.11.23 |
| [컴퓨터 구조] 컴퓨터가 이해하는 정보 -명령어 (0) | 2025.11.23 |
| [컴퓨터 구조] 컴퓨터가 이해하는 정보 - 데이터 문자 (0) | 2025.11.22 |
| 컴퓨터 과학 전체 구조 (0) | 2025.11.22 |