진법 변환 방법
- 다른 진법 → 10진법: 각 자리 숫자에 자릿값(진법의 거듭제곱)을 곱해 더합니다. 16진수 2F = 2 × 16 + 15 = 47.
- 10진법 → 다른 진법: 진법으로 계속 나누며 나머지를 모은 뒤 거꾸로 읽습니다. 47 ÷ 16 = 2 나머지 15(F) → 2F.
- 소수 부분: 진법을 곱해 나온 정수 부분을 차례로 적습니다. 0.75 × 2 = 1.5 → 1, 0.5 × 2 = 1.0 → 1이므로 0.75 = 0.11(2진).
- 2진 ↔ 8진·16진: 소수점을 기준으로 2진수를 3자리(8진) 또는 4자리(16진)씩 묶어 한 자리로 바꿉니다.
이 변환기는 입력을 먼저 정확한 분수로 바꾼 다음 목표 진법으로 옮기므로, 중간에 반올림이 생기지 않습니다. 결과가 끝나지 않는 순환소수이면 되풀이되는 마디를 괄호로 묶어 보여 주고, 마디가 64자리 안에 나타나지 않으면 64자리에서 자르고 끝에 …을 붙입니다.
2·8·10·16진수 대조표
| 10진수 | 2진수 | 8진수 | 16진수 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 1 0000 | 20 | 10 |
| 42 | 10 1010 | 52 | 2A |
| 100 | 110 0100 | 144 | 64 |
| 127 | 111 1111 | 177 | 7F |
| 255 | 1111 1111 | 377 | FF |
| 256 | 1 0000 0000 | 400 | 100 |
| 1,000 | 11 1110 1000 | 1750 | 3E8 |
| 1,024 | 100 0000 0000 | 2000 | 400 |
| 65,535 | 1111 1111 1111 1111 | 177777 | FFFF |
소수점이 있는 수 변환 예
| 입력 | 결과 |
|---|---|
| 0.5 (10진법) | 0.1 (2진법) |
| 0.1 (10진법) | 0.0(0011) (2진법) |
| 0.75 (10진법) | 0.C (16진법) |
| 0.1 (10진법) | 0.(0022) (3진법) |
| FF.8 (16진법) | 255.5 (10진법) |
| 0.1 (2진법) | 0.5 (10진법) |
2의 보수 (8비트 예)
부호 있는 8비트 정수는 −128부터 127까지, 부호 없는 8비트는 0부터 255까지 나타냅니다. 음수 x는 2⁸ + x의 비트로 저장합니다. 128~255 같은 양수는 같은 비트를 부호 있는 정수로 읽으면 음수가 되므로 "부호 있는 값" 칸을 함께 확인하세요.
| 값 | 8비트 | 16진수 | 부호 있는 값으로 읽으면 |
|---|---|---|---|
| -1 | 1111 1111 | FF | -1 |
| -2 | 1111 1110 | FE | -2 |
| -128 | 1000 0000 | 80 | -128 |
| 127 | 0111 1111 | 7F | 127 |
| -100 | 1001 1100 | 9C | -100 |
| 200 | 1100 1000 | C8 | -56 |
표는 페이지를 만들 때 위 변환기와 같은 코드로 계산했습니다.
입력 규칙과 지원 범위
- 진법은 2~36. 10 이상의 숫자는 A~Z로 쓰고 대소문자를 구분하지 않습니다.
- 공백과 밑줄(_)은 무시하므로 1010 1100이나 1_000_000처럼 끊어 써도 됩니다.
- 0x(16진), 0b(2진), 0o(8진) 접두어는 입력 진법이 맞을 때만 쓸 수 있습니다.
- 정수 부분은 1만 자리, 소수 부분은 100자리까지 입력할 수 있습니다. 소수 결과는 64자리까지 보여 줍니다.
- 2의 보수 표는 정수일 때만 표시하며 8·16·32·64비트 범위를 벗어나면 "범위 밖"으로 알려 줍니다.