누구나 쉽게 배우는 진수 - 2. 왜 다양한 진수가 필요할까요?
2025. 3. 28. 12:29ㆍ소프트웨어/기초
✅ 2. 왜 다양한 진수가 필요할까요?
📌 컴퓨터는 왜 2진수만 사용할까요?
컴퓨터는 전기를 이용해 작동하는 기계입니다.
전기가 흐르면(ON) → 1,
전기가 흐르지 않으면(OFF) → 0
이렇게 단순한 두 가지 상태만으로 정보를 처리합니다.
따라서 컴퓨터 내부에서는 모든 데이터가 2진수(Binary)로 표현됩니다.
숫자, 문자, 이미지, 소리, 명령어 등도 전부 0과 1의 조합으로 구성되어 있는 것이죠.
🔢 예시: 십진수 10의 2진수 표현
- 일반 2진수 변환: 10₁₀ = 1010₂
- 8비트 표현 (컴퓨터 내부 저장 형태): 00001010
- ※ 앞의 0은 비트를 맞추기 위한 보조 자리수로, 실제 숫자 값에는 영향을 주지 않아요.
📌 그런데 왜 8진수와 16진수가 필요할까요?
2진수는 길고, 사람이 읽기에 불편합니다.
예를 들어 2진수 101011111001을 보면, 무엇을 의미하는지 파악하기 어렵죠.
이런 문제를 해결하기 위해 2진수를 간결하게 표현하는 방식으로 8진수와 16진수가 사용됩니다.
📘 8진수(Octal)의 필요성과 활용
- 2진수를 3비트씩 묶어 표현 (2³ = 8)
- 예: 110100₂ → 110 100 → 6 4 → 8진수 64₈
✔️ 실제 활용:
- Linux/Unix 파일 권한 설정에서 자주 사용됨
- 예: chmod 755
- 7 = 111, 5 = 101 → 읽기/쓰기/실행 권한 조합을 2진수로 표현한 것
- 예: chmod 755
📗 16진수(Hexadecimal)의 필요성과 활용
- 2진수를 4비트씩 묶어 표현 (2⁴ = 16)
- 예: 10101111₂ → 1010 1111 → A F → 16진수 AF₁₆
✔️ 실제 활용:
- 웹 색상 코드: #FF0000 = 빨간색
- 메모리 주소: 0x7ffeefbff5c0
- 디버깅 시 바이너리 데이터 확인용
🧠 왜 진수 변환을 배워야 하나요?
진수 변환은 단순한 계산이 아닙니다.
컴퓨터의 작동 방식과 프로그래밍 원리를 이해하기 위한 필수 지식입니다.
💡 진수 변환의 실용성
진수 | 사용 분야 | 예시 |
2진수 | 컴퓨터 내부 연산 | 01010101 |
8진수 | 시스템 설정 | chmod 755 |
16진수 | 색상 코드, 주소, 디버깅 | #00FF00, 0xFF |
🔧 진수 이해의 장점
- 비트·바이트 구조, 메모리 구조에 대한 이해 ↑
- 프로그램 디버깅 속도 ↑
- 자료구조/알고리즘/네트워크 등 CS 기초 역량 강화
🔠 프로그래밍 언어에서의 진수 표기법
진수 | 표기 예시 (Python 기준) | 설명 |
2진수 | 0b1010 | 앞에 0b 붙임 |
8진수 | 0o755 | 앞에 0o 붙임 |
16진수 | 0xFF | 앞에 0x 붙임 |
💡 JavaScript, C, Java 등 다른 언어들도 유사한 방식으로 표기합니다.
📝 간단한 연습 문제
Q. 2진수 1101을 10진수와 16진수로 바꿔보세요.
- 10진수 변환:
- 1101₂ = (1×8) + (1×4) + (0×2) + (1×1) = 13₁₀
- 16진수 변환:
1101 → 앞에 0 추가해서 00001101 → 0xD
📊 시각 자료: 진수 간 변환 도식 (텍스트 버전)
2진수 → 8진수 → 16진수
───────────── ────────────── ──────────────
000 → 0 -
0000 - → 0
110100 → 64₈ → 34₁₆
(3비트 단위) (2³ = 8) (4비트 단위)
💡 핵심:
- 8진수는 3비트씩 묶음
- 16진수는 4비트씩 묶음
📘 요약 정리
항목 | 내용 |
2진수 사용 이유 | 전기 신호 표현에 적합 (ON/OFF) |
8·16진수의 등장 이유 | 2진수를 간결하고 읽기 쉽게 표현 |
진수 변환의 목적 | 컴퓨터 구조 및 프로그래밍 이해 필수 |
표기법 | 0b (2진수), 0o (8진수), 0x (16진수) |
'소프트웨어 > 기초' 카테고리의 다른 글
누구나 쉽게 배우는 진수 - 4장. 8진수(Octal) 이해하기 (0) | 2025.03.28 |
---|---|
누구나 쉽게 배우는 진수 - 3장. 2진수(Binary) 이해하기 (0) | 2025.03.28 |
누구나 쉽게 배우는 진수 - 1. 진수란 무엇인가요? (0) | 2025.03.28 |
부동 소수점 - 6. 정리 및 실전 예제 (부동 소수점 & IEEE 754 표준) (0) | 2025.02.08 |
부동 소수점 - 5. 정확도가 중요한 경우 어떻게 해결할까? (0) | 2025.02.08 |