컴퓨터는 인간처럼 글자나 숫자 자체를 이해하지 않는다. 그 대신, 전기적 신호의 존재와 부재를 이용해 모든 정보를 표현한다. 이로 인해 컴퓨터는 데이터를 2진수(이진수, Binary)로 처리하고 이를 저장하고 연산한다.
비트(Bit): 이진 정보의 최소 단위
정의
- Bit(binary digit): 컴퓨터에서 표현할 수 있는 가장 작은 데이터 단위로 0 또는 1 중 하나의 값을 갖는 단위, 즉 정보의 가장 작은 조각
- 컴퓨터는 전기적 신호의 유무 또는 전압 차이를 기반으로 동작하며, 이것을 2개의 상태로 추상화한 것
- High Voltage(전압이 있음) → 1
- Low Voltage(전압이 없음) → 2
- n비트로 표현할 수 있는 고유한 상태 수 = 2ⁿ
- 1비트: 2가지 → 0, 1
- 2비트: 4가지 → 00, 01, 10, 11
- 3비트: 8가지 → 000 ~ 111
- 8비트: 256가지 → 00000000 ~ 11111111
- 16비트: 65,636가지 조합
- 이 조합의 폭은 프로그래밍에서 정수형 자료형의 범위, 메모리 주소 지정, 컬러 정보 표현(rgb) 등 다양한 곳에서 직접적인 영향을 끼친다.
바이트(Byte): 메모리 표현의 기본 단위
정의
- 1바이트 = 8비트
- 컴퓨터에서 컴퓨터 메모리와 저장장치에서 주소의 최소 단위로 사용 → CPU는 데이터를 바이트 단위로 읽고 쓰는 연산에 최적화
왜 하필 8비트?
- 8비트면 256(=2⁸)개의 조합이 가능하므로, ASCII 문자 집합을 포함하기에 충분하고, 연산자, 제어문자, 숫자 등도 모두 표현 가능하다.
- 또한, 2ⁿ 구조를 따르기 때문에 하드웨어 설계와 연산 처리에서 효율적이다.
이진수(Binary Number): 컴퓨터의 언어
기본 원리
- 이진수는 2진법에 기반한 수 체계
- 우리가 일상적으로 사용하는 10진수는 자릿수가 10(0~9)이지만, 이진수는 2(0과1)만 사용
- 컴퓨터는 하드웨어적으로 0과 1의 조합만을 처리할 수 있으므로 모든 수는 이진수로 변환되어 저장
- 자리수가 올라갈수록 2의 거듭제곱으로 의미가 커짐
10진수 → 2진수 변환
예: 10진수 13을 2진수로 변환
13 ÷ 2 = 6 ... 1
6 ÷ 2 = 3 ... 0
3 ÷ 2 = 1 ... 1
1 ÷ 2 = 0 ... 1
→ 역순으로 읽으면: 1101
예: 10진수 43을 2진수로 변환
43 ÷ 2 = 21 ... 1
21 ÷ 2 = 10 ... 1
10 ÷ 2 = 5 ... 0
5 ÷ 2 = 2 ... 1
2 ÷ 2 = 1 ... 0
1 ÷ 2 = 0 ... 1
✅ 결과: 43₁₀ = 101011₂
2진수 → 10진수 변환
예: 101011₂ = ?
= 1×2⁵ + 0×2⁴ + 1×2³ + 0×2² + 1×2¹ + 1×2⁰
= 32 + 0 + 8 + 0 + 2 + 1 = 43
왜 이진수인가?(아날로그보다 디지털이 우월한 이유)
전자 회로 기반의 컴퓨터 구조(전기적 신호의 안정성과 처리의 단순함)
- 트랜지스터는 스위치처럼 동작하며, 전류가 흐르는지/안 흐르는지를 감지한다.
- 아날로그보다 디지털이 신호 해석이 단순하고 신뢰성 높다.
- 이진 표현은 잡음에 강하고 회로 설계가 간단하다. → 에러 검출 및 정정에도 유리하다.
아날로그 시스템은 무한한 값을 표현할 수 있지만 잡음, 열화에 약하다. 반면, 디지털 시스템은 정확하고 일관된 신호 전달이 가능해 컴퓨터의 신뢰성과 성능을 보장할 수 있다.
이진수와 문자 인코딩
ASCII 예시
- 문자 → 숫자 코드로 매핑 → 이진수로 변환
- 예:
- "A" → 65 → 01000001
- "a" → 97 → 01100001
- " " (space) → 32 → 00100000
2의 보수
이진수를 음수로 표현하려면, 우리가 흔히 쓰는 부호-카기 방식은 산술 연산이 복잡해지기 때문에, 컴퓨터는 보통 2의 보수 표현을 ㅏ용한다.
예: 8비트 기준에서 -5 표현
- 5 → 00000101
- 반전 → 11111010
- +1 → 11111011
✅ 결과: -5 = 11111011 (2의 보수)
이 방식 덕분에 덧셈 연산기로 뺄셈까지 가능하게 된다(하드웨어가 간단해짐).
32비트 vs. 64비트
컴퓨터에 운영체제나 소프트웨어를 설치하기 위해 다운로드 사이트에 들어가보면, Windows의 32bit 버전과 64bit 버전을 심심치 않게 볼 수 있다.
- 32비트 시스템: CPU가 한 번에 처리할 수 있는 데이터 크기나 주소 길이가 32비트
- 64비트 시스템: 같은 기준으로 64비트까지 한 번에 처리 가능
여기서 말하는 '비트'는 단순히 숫자가 아니라 CPU의 처리 단위(레지스터 폭, 주소 버스의 폭 등)의미한다.
항목 | 32비트 시스템 | 64비트 시스템 |
한 번에 처리하는 데이터 크기 | 32비트 = 4바이트 | 64비트 = 8바이트 |
메모리 주소 공간 | 약 4GB | 이론상 18EB 이상 |
레지스터 크기 | 32비트 연산 가능 | 64비트 연산 가능 |
프로그램 실행 방식 | 32비트용 프로그램만 실행 | 64비트와 32비트 프로그램 대부분 실행 가능(하위 호환) |
- 어떤 소프트웨어는 32비트 CPU에서는 실행이 안 될 수도 있다.
- 드라이버(하드웨어 제어 소프트웨어)는 CPU 아키텍처에 맞는 버전을 설치해야 한다.
- 64비트 CPU는 더 많은 데이터를 동시ㅣ에 처리하고, 더 많은 메모리를 직접 접근할 수 있다.
- 그래서 게임, 영상 편집, AI 연산 같은 무거운 작업에서는 64비트 시스템이 필수적이다.
'컴퓨터공학 > 컴퓨터 구조와 작동 원리' 카테고리의 다른 글
[컴퓨터공학] 컴퓨터 개념 기초 | 메모리 계층 구조 (0) | 2025.03.24 |
---|---|
[컴퓨터공학] 컴퓨터 개념 기초 | CPU가 명령어를 실행하는 방법 - Fetch, Decode, Execute 사이클 완전 정복 (0) | 2025.03.24 |
[컴퓨터공학] 컴퓨터 개념 기초 | 컴퓨터가 숫자를 표현하는 방법(2의 보수, 고정소수점 등) (0) | 2025.03.24 |
[컴퓨터공학] 컴퓨터 개념 기초 | 하드웨어와 소프트웨어 (0) | 2025.03.22 |