진법 변환 가이드
진법(기수법)이란?
진법은 수를 표현하는 체계로, 사용하는 숫자의 개수에 따라 구분됩니다. 각 자리의 값은 '기수의 거듭제곱'으로 결정됩니다.
| 진법 | 기수 | 사용 숫자 | 주요 용도 |
|---|---|---|---|
| 2진수 (Binary) | 2 | 0, 1 | CPU 연산, 비트 연산, 네트워크 |
| 8진수 (Octal) | 8 | 0-7 | 리눅스 파일 권한 (chmod) |
| 10진수 (Decimal) | 10 | 0-9 | 일상생활 수 체계 |
| 16진수 (Hex) | 16 | 0-9, A-F | 색상 코드, 메모리 주소, MAC |
진법 간 대응표
| 10진수 | 2진수 | 8진수 | 16진수 |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
변환 방법
10진수 → 2진수 (나누기 방법)
- 10진수를 2로 나누고 나머지를 기록
- 몫이 0이 될 때까지 반복
- 나머지를 역순으로 읽음
예시: 42를 2진수로
- 42 ÷ 2 = 21 나머지 0
- 21 ÷ 2 = 10 나머지 1
- 10 ÷ 2 = 5 나머지 0
- 5 ÷ 2 = 2 나머지 1
- 2 ÷ 2 = 1 나머지 0
- 1 ÷ 2 = 0 나머지 1
- 역순: 101010 (2진수)
2진수 → 16진수 (4비트 그룹핑)
예시: 2진수 10101100 → 16진수
- 1010 / 1100 → A / C → AC (16진수)
2진수 → 8진수 (3비트 그룹핑)
예시: 2진수 10101100 → 8진수
- 10 / 101 / 100 → 2 / 5 / 4 → 254 (8진수)
프로그래밍 언어별 진법 표기
| 언어 | 2진수 | 8진수 | 16진수 | 출력 변환 |
|---|---|---|---|---|
| JavaScript | 0b1010 | 0o12 | 0xA | toString(2/8/16) |
| Python | 0b1010 | 0o12 | 0xA | bin()/oct()/hex() |
| Java | 0b1010 | 012 | 0xA | Integer.toBinaryString() |
| C/C++ | 0b1010 | 012 | 0xA | printf("%b/%o/%x") |
| CSS (색상) | - | - | #RRGGBB | rgb() 대안 |
실용 응용 예시
1. CSS 색상 코드
- 빨강: #FF0000 = rgb(255, 0, 0)
- 초록: #00FF00 = rgb(0, 255, 0)
- 파랑: #0000FF = rgb(0, 0, 255)
- 흰색: #FFFFFF = rgb(255, 255, 255)
- 검정: #000000 = rgb(0, 0, 0)
2. 리눅스 파일 권한 (chmod)
| 8진수 | 2진수 | 권한 | 설명 |
|---|---|---|---|
| 7 | 111 | rwx | 읽기+쓰기+실행 |
| 6 | 110 | rw- | 읽기+쓰기 |
| 5 | 101 | r-x | 읽기+실행 |
| 4 | 100 | r-- | 읽기만 |
| 0 | 000 | --- | 권한 없음 |
chmod 755 = rwxr-xr-x (소유자: 모든 권한, 그룹/기타: 읽기+실행)
3. IPv4 서브넷 마스크
- 255.255.255.0 = 11111111.11111111.11111111.00000000 = /24 CIDR
- 255.255.0.0 = /16 CIDR
실용 팁
- 4비트 = 16진수 1자리 — 2진수↔16진수 변환의 핵심 규칙. 외우면 변환이 빨라집니다.
- 3비트 = 8진수 1자리 — chmod 권한 이해에 필수.
- 2의 거듭제곱 암기 — 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 (프로그래밍 필수).
- 색상 코드 활용 — #RGB에서 각 2자리가 Red, Green, Blue 값(00
FF = 0255). - 계산기 활용 — 복잡한 변환은 프로그래밍 계산기나 이 도구를 활용하세요.
참고
- IEEE 754: 부동소수점 표현 표준 (2진수 기반)
- RFC 4291: IPv6 주소 표기법 (16진수)
- POSIX: 파일 권한 체계 (8진수)
※ 이 계산기는 정수 범위의 진법 변환을 지원합니다. 소수점 이하 변환이나 음수(2의 보수) 표현은 지원하지 않습니다.