진법 가이드를 찾고 계신다면 제대로 오셨습니다. 프로그래밍이나 컴퓨터 공학을 공부할 때 반드시 알아야 하는 것이 바로 진법입니다. 이 글에서는 10진법을 기준으로 2진법, 8진법, 16진법으로 변환하는 방법을 차근차근 설명합니다.
진법이란 무엇인가
진법(Numeral System)은 숫자를 표현하는 체계입니다. 우리가 일상에서 사용하는 10진법은 0부터 9까지 10개의 숫자를 사용합니다. 컴퓨터는 전기 신호의 on/off 상태를 기반으로 하기 때문에 0과 1만 사용하는 2진법을 기본으로 사용합니다.
| 진법 | 기수 | 사용 숫자 | 주요 용도 |
|---|---|---|---|
| 2진법 | 2 | 0, 1 | 컴퓨터 내부 연산 |
| 8진법 | 8 | 0-7 | Unix 파일 권한 |
| 10진법 | 10 | 0-9 | 일상생활 |
| 16진법 | 16 | 0-9, A-F | 메모리 주소, 색상 코드 |
10진법에서 2진법으로 변환하기
10진수를 2진수로 변환하는 방법은 간단합니다. 변환하려는 숫자를 2로 계속 나누면서 나머지를 기록하면 됩니다.
예시: 25를 2진수로 변환
- 25 / 2 = 12 ... 나머지 1
- 12 / 2 = 6 ... 나머지 0
- 6 / 2 = 3 ... 나머지 0
- 3 / 2 = 1 ... 나머지 1
- 1 / 2 = 0 ... 나머지 1
나머지를 아래에서 위로 읽으면 11001이 됩니다. 따라서 25(10) = 11001(2)입니다.
10진법에서 16진법으로 변환하기
16진법은 웹 개발에서 색상 코드(#FF5733)나 프로그래밍에서 메모리 주소를 표현할 때 자주 사용됩니다. 10을 A, 11을 B, ... 15를 F로 표기하는 것이 특징입니다.
예시: 255를 16진수로 변환
- 255 / 16 = 15 ... 나머지 15(F)
- 15 / 16 = 0 ... 나머지 15(F)
결과: 255(10) = FF(16)
이런 변환 작업을 자주 해야 한다면 진법 변환기를 활용하면 복잡한 계산 없이 즉시 결과를 확인할 수 있어 편리합니다.
2진법, 8진법, 16진법의 관계
8진법과 16진법은 2진법과 밀접한 관계가 있습니다. 8 = 2^3이므로 2진수 3자리가 8진수 1자리에 대응하고, 16 = 2^4이므로 2진수 4자리가 16진수 1자리에 대응합니다.
예시: 2진수 11010110을 16진수로 변환
- 오른쪽부터 4자리씩 묶기: 1101 | 0110
- 1101(2) = 13(10) = D(16)
- 0110(2) = 6(10) = 6(16)
- 결과: D6(16)
진법이 실제로 사용되는 곳
진법 변환은 단순히 수학 문제가 아닙니다. 실무에서 다양하게 활용됩니다.
- 웹 개발: CSS 색상 코드는 16진법으로 표현됩니다. #FFFFFF는 흰색, #000000은 검은색입니다.
- 네트워크: IP 주소와 서브넷 마스크 계산에 2진법 변환이 필수입니다.
- Unix/Linux: 파일 권한(chmod 755)은 8진법으로 표현됩니다. 7 = 111(2) = 읽기+쓰기+실행 권한입니다.
- 디버깅: 메모리 덤프나 바이너리 파일 분석 시 16진법 데이터를 읽어야 합니다.
진법 변환은 처음에는 복잡해 보이지만, 원리를 이해하고 몇 번 연습하면 금방 익숙해집니다. 2로 나누기, 16으로 나누기 같은 기본 원리만 기억하면 어떤 진법이든 변환할 수 있습니다.