2진수부터 36진수까지 정수를 진법 간에 변환합니다. 이진수, 팔진수, 십진수, 십육진수 등 다양한 진법을 지원하며, 숫자를 입력하고 원본·대상 진법을 선택하면 결과가 표시됩니다.
입력
원본 진법으로 표기된 변환할 정수입니다. 10 이상의 진법에서는 A–Z 문자를 사용합니다 (예: 16진수의 "FF", 8진수의 "77"). 대소문자를 구분하지 않습니다.
입력 숫자의 진법(기수)입니다. 2에서 36 사이의 값이어야 합니다. 주요 진법: 2 (이진수), 8 (팔진수), 10 (십진수), 16 (십육진수).
변환할 목표 진법(기수)입니다. 2에서 36 사이의 값이어야 합니다. 결과는 0–9 숫자와 10 이상의 자릿수에 대해 A–Z 문자를 사용합니다.
결과
대상 진법으로 표기된 변환 결과입니다.
"진법"이란 무엇인가
모든 정수는 위치 기수법(positional notation)으로 표현할 수 있습니다. 진법(또는 기수, radix)은 사용하는 서로 다른 숫자 기호의 수와 각 자리가 갖는 값을 결정합니다.
우리가 일상적으로 사용하는 10진법에서는 0–9 총 열 가지 숫자를 쓰며, 각 자리의 값은 오른쪽 자리의 열 배입니다.
3,472=3×103+4×102+7×101+2×100
**2진법(이진수)**으로 바꾸면 0과 1 두 가지 숫자만 쓰며, 각 자리의 값은 두 배씩 커집니다.
10112=1×23+0×22+1×21+1×20=1110
이것이 핵심입니다. 서로 다른 진법은 같은 정수를 다른 방식으로 표기하는 것뿐입니다.
가장 자주 쓰이는 네 가지 진법
진법
이름
사용 숫자
주요 용도
2
이진수
0, 1
컴퓨터가 내부적으로 모든 것을 저장하는 방식
8
팔진수
0–7
Unix 파일 권한(예: chmod 755), 레거시 시스템
10
십진수
0–9
인간의 일상적인 계산
16
십육진수
0–9, A–F
메모리 주소, 색상 코드(#FF8800), 바이트 값
10 이상의 진법에서는 추가 기호가 필요합니다. 관례적으로 알파벳 문자를 사용합니다: A = 10, B = 11, … Z = 35. 이 때문에 이 계산기는 2진법부터 36진법까지 지원합니다. 36이 0–9와 A–Z로 표현할 수 있는 최대 진법입니다.
손으로 변환하기: X진법 → 10진법
임의의 진법에서 10진법으로 변환하려면, 각 자리의 숫자에 진법의 해당 거듭제곱을 곱하고 모두 더합니다(오른쪽부터 0제곱으로 시작).
FF(16진수)를 10진수로 변환:
FF16=F×161+F×160=15×16+15×1=240+15=25510
1010(2진수)을 10진수로 변환:
10102=1×8+0×4+1×2+0×1=1010
377(8진수)을 10진수로 변환:
3778=3×64+7×8+7×1=192+56+7=25510
FF₁₆, 377₈, 255₁₀이 모두 같은 수를 세 가지 방식으로 쓴 것임을 알 수 있습니다.
손으로 변환하기: 10진법 → X진법
반대 방향으로는, 목표 진법으로 반복해서 나누어 나머지를 모읍니다. 나머지를 아래에서 위로 읽으면 변환된 수가 됩니다.
255₁₀을 16진법으로 변환:
단계
피제수
÷ 16
나머지
1
255
15
15 → F
2
15
0
15 → F
아래에서 위로 읽으면: FF ✓
10₁₀을 2진법으로 변환:
단계
피제수
÷ 2
나머지
1
10
5
0
2
5
2
1
3
2
1
0
4
1
0
1
아래에서 위로 읽으면: 1010 ✓
"10진법을 거쳐 가는" 방법은 임의의 두 진법 사이에서 작동합니다: 원본 진법 → 10진법 → 목표 진법. 이 계산기가 내부적으로 하는 일이 바로 이것입니다.
지름길: 이진수 ↔ 팔진수 ↔ 십육진수
8 = 2³이고 16 = 2⁴이므로, 이진수와 이 두 진법 사이는 자릿수 묶기만으로 변환할 수 있습니다. 나눗셈이 필요 없습니다.
이진수 → 팔진수: 오른쪽부터 세 자리씩 묶어 각 묶음을 하나의 팔진수 숫자로 변환합니다.
2010510171112=2578
이진수 → 십육진수: 같은 방식으로 네 자리씩 묶습니다.
A1010F11112=AF16
프로그래머들이 메모리 덤프를 읽을 때 십육진수를 선호하는 이유가 이것입니다. 십육진수 두 자리가 정확히 1바이트(8비트 = 4비트 × 2)에 해당합니다.
실제로 어디에 쓰이나
프로그래밍과 디버깅
CSS와 디자인 도구의 16진수 색상 코드: #FF8800은 R = FF(255), G = 88(136), B = 00(0)을 의미합니다.
디버거, 스택 트레이스, 디스어셈블러의 메모리 주소는 항상 16진수로 표시됩니다(예: 0x7fff8a3b0c40).
비트 마스크와 플래그는 각 숫자가 특정 비트 위치에 해당하므로 10진수보다 2진수나 16진수로 읽기 쉬운 경우가 많습니다.
Unix 파일 권한은 세 자리 8진수를 사용합니다: chmod 755는 소유자가 읽기+쓰기+실행(7), 그룹과 다른 사용자가 읽기+실행(5)을 갖는다는 의미입니다.
임베디드 시스템과 전자공학
마이크로컨트롤러 레지스터, GPIO 핀 구성, 하드웨어 데이터시트는 각 비트에 고유한 의미가 있어 16진수 또는 2진수로 작성됩니다. 10진수로 변환하면 구조가 흐려집니다.
암호학과 해싱
SHA-256(256비트), MD5(128비트) 같은 해시값은 10진수로 표현하면 알아볼 수 없습니다. 그래서 보편적으로 16진수로 표시됩니다.
알아두어야 할 특수 케이스
0은 모든 진법에서 동일합니다.0₂, 0₁₆, 0₃₆은 모두 같은 값입니다.
진법보다 작은 한 자리 숫자는 표기가 동일합니다.7은 8진법, 10진법, 16진법에서 모두 같은 7입니다. 그러나 8은 10진수와 16진수에서는 유효하지만 8진수에서는 유효하지 않습니다. 이 계산기의 입력 유효성 검사가 잡아내는 오류입니다.
영문자의 대소문자는 구분하지 않습니다.FF, Ff, ff는 모두 같은 16진수 값 255를 나타냅니다.
음수와 소수는 지원하지 않습니다. 이 도구는 양의 정수 전용입니다.
직접 해보세요
FF를 원본 진법 16, 목표 진법 2로 입력해 보세요. 11111111이 나와야 합니다. 이것은 모든 비트가 1로 설정된 1바이트로, 부호 없는 8비트 정수가 가질 수 있는 최댓값입니다. 이제 255를 10진법에서 16진법으로 변환해 보세요. 다시 FF로 돌아옵니다. 같은 수, 세 가지 표기법입니다.