반응형
Chapter 01. 기초 수학
진법과 진법 변환 (Number Systems & Conversion)
1. 진법이란?
- 정의:
진법이란, “숫자를 나타낼 때 사용하는 수의 개수(기수, base)”에 따라 수를 표현하는 방법이다.
| 진법 | 사용하는 숫자 | 예시 |
| 2진법 | 0, 1 | 컴퓨터 내부의 데이터 표현 |
| 8진법 | 0~7 | 초기 시스템 코드, 권한 표현 등 |
| 10진법 | 0~9 | 우리가 일상에서 사용하는 일반적인 수 체계 |
| 16진법 | 0~9, A~F | 메모리 주소, 색상 코드(예: #FF9900) |
💡 진법의 핵심: “어떤 기수(base) 를 기준으로 자릿값이 커지는가?”
2. 10진수를 다른 진수로 변환
- 원리:
나누기 연산을 반복하여 나머지를 뒤집어 읽으면 변환된 수가 된다.
| 변환 | 예시 | 결과 |
| 10진수 → 2진수 | 25 ÷ 2 → 나머지 11001 | 11001₂ |
| 10진수 → 8진수 | 25 ÷ 8 → 나머지 31 | 31₈ |
| 10진수 → 16진수 | 25 ÷ 16 → 나머지 19 | 19₁₆ |
💡 16진법에서는 10~15를 A~F로 표현 (10=A, 11=B, ..., 15=F)
3. 다른 진수를 10진수로 변환
- 원리:
각 자리의 숫자 × (기수의 거듭제곱)의 합
| 변환 | 계산 | 결과 |
| 2진수 11001 | (1×2⁴) + (1×2³) + (0×2²) + (0×2¹) + (1×2⁰) | 25₁₀ |
| 8진수 31 | (3×8¹) + (1×8⁰) | 25₁₀ |
| 16진수 19 | (1×16¹) + (9×16⁰) | 25₁₀ |
4. 2진수 ↔ 8진수 / 16진수 변환
- 규칙적 변환법
- 2진수 → 8진수: 3자리씩 끊어서 변환
- 2진수 → 16진수: 4자리씩 끊어서 변환
예시
2진수 1010100 → 8진수 124
2진수 1010100 → 16진수 54
💡 2진수에서 8진수·16진수로의 변환은 자릿수 규칙으로 쉽게 처리 가능
5. 파이썬으로 진법 변환하기
파이썬에서는 내장 함수를 통해 간단히 진법 변환을 할 수 있다.
(1) 10진수를 다른 진수로 변환
num = 25
print(bin(num)) # 2진수: 0b11001
print(oct(num)) # 8진수: 0o31
print(hex(num)) # 16진수: 0x19
➜ bin(), oct(), hex() 는 문자열 형태의 결과를 반환한다.
(2) format() 함수 활용
num = 25
print(format(num, 'b')) # '11001'
print(format(num, 'o')) # '31'
print(format(num, 'x')) # '19'
➜ 접두어(0b, 0o, 0x)를 제거하고 순수한 값만 출력할 때 유용.
6. X진수를 10진수로 변환
print(int('11001', 2)) # 25
print(int('31', 8)) # 25
print(int('19', 16)) # 25
➜ int(문자열, base) 구조로, 두 번째 인수에 기수를 지정하면 10진수로 변환된다.
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
이번 강의에서는 수 체계의 원리와 컴퓨터적 사고의 연결을 배웠다.
특히 진법은 단순한 계산이 아니라, 컴퓨터가 데이터를 어떻게 저장하고 처리하는지 이해하는 기초 언어라는 점이 인상적이었다.
직접 나눗셈으로 진법을 변환해보면
- 각 자리의 값이 어떻게 “기수에 따라” 커지는지,
- 이진수와 십육진수가 왜 프로그램 내부에서 효율적인지
직관적으로 이해할 수 있었다.
파이썬 내장 함수를 사용하면, 이 복잡한 과정을 손쉽게 자동화할 수 있다는 점에서 “수학적 사고와 프로그래밍의 융합”을 실감할 수 있었다.
🚀 적용점
- 실무 응용:
- 웹 개발에서 16진수 색상 코드(#FFAA00) 이해 및 변환
- 시스템/보안 분야에서 2진수·16진수 주소 연산
- 하드웨어 제어나 네트워크 프로토콜 분석 시 진법 변환 활용
- 프로그래밍 응용:
- int(값, base) 와 format() 조합으로 자유로운 진법 변환 구현
- 입력값의 진법을 자동 감지해 변환하는 함수 만들기
- 이진수 계산(AND, OR, XOR) 실습을 통해 비트 연산 이해 확장
👉 이번 주제는 “컴퓨터 사고력의 기초”로,
단순한 수학 개념이 실제 프로그래밍 논리와 밀접하게 연결된다는 점을 깨닫게 해줬다.
반응형
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-07 (0) | 2025.10.24 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-06 (0) | 2025.10.23 |
| 제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-04 (0) | 2025.10.21 |
| 제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-03 (0) | 2025.10.21 |
| 제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-02 (0) | 2025.10.20 |