T

Text Machine

강력한 텍스트 도구를 브라우저에서

진법 변환기

2진수, 8진수, 10진수, 16진수 사이에서 숫자를 변환하세요. 값을 입력하고 그 값이 적힌 진법을 선택하면 네 가지 진법을 한 번에 확인할 수 있습니다. 임의 정밀도로 처리되며, 모두 브라우저 안에서 동작하고 아무것도 업로드되지 않습니다.

변환 기준

숫자
결과

위에 숫자를 입력하면 모든 진법으로 표시됩니다.

진법 변환기 사용 방법

  1. 1

    숫자 입력하기

    필드에 숫자를 입력하거나 붙여넣으세요. 공백과 밑줄은 무시되므로 1010_1101처럼 자릿수를 묶은 값도 사용할 수 있습니다.

  2. 2

    기준 진법 선택하기

    입력한 숫자가 2진수, 8진수, 10진수, 16진수 중 어떤 진법으로 적혀 있는지 선택하세요.

  3. 3

    모든 진법을 한 번에 확인하기

    값이 2진수, 8진수, 10진수, 16진수로 함께 표시되므로, 필요한 진법을 비교하거나 복사할 수 있습니다.

  4. 4

    결과 복사하기

    각 진법 옆의 복사 버튼을 눌러 해당 값을 클립보드에 담으세요.

진법: 2진수, 8진수, 10진수, 16진수

진법이란 무엇인가

진법(밑, radix)은 수 체계가 사용하는 서로 다른 숫자 기호가 몇 개인지, 따라서 각 자리가 얼마만큼의 값을 갖는지를 뜻합니다. 10진수는 밑이 10이며 0부터 9까지 열 개의 숫자를 씁니다. 2진수는 두 개의 숫자를 쓰는 밑 2, 8진수는 여덟 개를 쓰는 밑 8, 16진수는 열여섯 개를 쓰는 밑 16입니다. 같은 양을 어떤 진법으로도 적을 수 있으며, 바뀌는 것은 기호와 자리 가중치뿐 바탕에 깔린 값은 결코 바뀌지 않습니다.

이 변환기는 한 진법으로 적힌 숫자를 받아 2진수, 8진수, 10진수, 16진수로 동시에 보여 주므로 두 번 변환할 필요가 없습니다. 컴퓨터와 프로그래머, 그리고 여러 표준이 저마다 충분한 실용적 이유로 서로 다른 진법을 선호하기 때문에, 진법을 이해하는 것은 기계 데이터를 막힘없이 읽는 열쇠입니다.

여러 진법에 걸친 자리 표기법

이 모든 체계는 자리 표기법(positional)을 따릅니다. 즉 숫자의 값은 그 자리에 따라 밑의 거듭제곱이 곱해집니다. 10진수에서 오른쪽부터의 자리는 10의 거듭제곱입니다. 일의 자리, 십의 자리, 백의 자리 식입니다. 밑이 b인 어떤 진법에서든 각 자리는 b의 거듭제곱입니다. 맨 오른쪽은 b의 0제곱(항상 1), 그다음은 b, 그다음은 b의 제곱 식입니다. 숫자의 값을 구하려면 각 자릿수에 그 자리의 거듭제곱을 곱한 뒤 결과를 더합니다.

이 단 하나의 규칙이 모든 진법을 통합합니다. 2진수의 자리는 2의 거듭제곱(1, 2, 4, 8)이고, 8진수의 자리는 8의 거듭제곱(1, 8, 64, 512)이며, 16진수의 자리는 16의 거듭제곱(1, 16, 256, 4096)입니다. 어떤 숫자든 10진수로 변환하는 것은 이 가중합을 적용하는 것일 뿐이고, 10진수를 다른 진법으로 변환하는 것은 그 밑으로 반복해서 나누는 그 역의 과정입니다.

9를 넘어서는 숫자 기호

진법은 그 크기만큼의 숫자 기호가 정확히 필요한데, 이는 10을 넘는 진법에서 한 가지 의문을 낳습니다. 9보다 큰 값을 가진 한 자리 숫자를 어떻게 적을까요? 16진수는 글자를 빌려 와 이를 해결합니다. 0부터 9까지 다음에 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F를 씁니다. 그래서 한 자리 16진수는 0부터 15까지의 값을 아우르며, 대소문자는 상관없으므로 F와 f는 같습니다.

10 이하의 진법에는 글자가 필요 없습니다. 2진수는 0과 1만, 8진수는 0부터 7까지, 10진수는 0부터 9까지 씁니다. 이것이 특정 숫자가 특정 진법에서 허용되지 않는 이유이기도 합니다. 8진수에는 8이나 9가 나올 수 없고, 2진수에서는 0과 1만 유효합니다. 선택한 진법에 비해 너무 큰 숫자를 입력하면, 그 값은 그 진법에서 유효한 숫자가 아니며 변환기가 그렇다고 알려 줍니다.

각 진법이 쓰이는 이유

2진수는 컴퓨터의 모국어입니다. 하드웨어 스위치가 켜짐과 꺼짐이라는 두 가지 상태를 가지며 이것이 1과 0에 곧바로 대응하기 때문입니다. 기계가 저장하는 모든 것은 결국 2진수이므로, 긴 2진수는 사람이 읽기에 번거롭긴 해도, 밑 2는 데이터가 가장 낮은 수준에서 어떻게 표현되는지를 이해하는 데 필수적입니다.

16진수는 프로그래머가 쓰는 2진수의 간결한 약식 표기입니다. 한 자리 16진수가 정확히 4비트와 같으므로 두 자리 16진수가 한 바이트를 깔끔하게 나타내며, 그래서 16진수가 메모리 주소와 색상 코드, 바이트 덤프를 지배합니다. 8진수는 비트를 셋씩 묶으며 옛 컴퓨터에서 물려받은 것입니다. 755가 8진수인 Unix 파일 권한 같은 곳에 여전히 등장합니다. 10진수는 사람이 헤아리는 진법으로 남아 있으므로, 값을 사람이 읽어야 할 때의 자연스러운 종착점입니다.

실제 예시: 모든 진법으로 본 0xFF

16진수 값 FF를 네 가지 진법으로 변환해 봅시다. 자리값으로 읽으면 왼쪽 F는 16의 자리에, 오른쪽 F는 1의 자리에 있으므로 15 곱하기 16 더하기 15 곱하기 1, 즉 240 더하기 15가 되어 10진수로 240 + 15 = 255가 됩니다. 이는 한 바이트가 가질 수 있는 최댓값입니다.

같은 양은 2진수로 11111111입니다. 1이 여덟 개인데, 255가 256보다 1 작고 256은 2의 8제곱이기 때문입니다. 8진수로는 377인데, 255가 3 곱하기 64 더하기 7 곱하기 8 더하기 7이기 때문입니다. 이렇게 하나의 값 255가 진법에 따라 FF, 11111111, 377, 255로 나타나며, 이 변환기는 네 가지를 한 번에 보여 주므로 곧바로 비교할 수 있습니다.

진법을 넘나드는 두 번째 예시

10진수 100을 나머지 세 진법으로 변환해 봅시다. 2진수의 경우, 합이 100이 되는 2의 거듭제곱을 찾습니다. 64 더하기 32 더하기 4가 100이므로 64, 32, 4의 자리가 켜지고 결과는 1100100입니다. 16진수의 경우, 16으로 나눕니다. 100은 6 곱하기 16(96)에 나머지 4이므로 64가 됩니다. 8진수의 경우, 8로 나눕니다. 100은 1 곱하기 64 더하기 4 곱하기 8 더하기 4이므로 144가 됩니다.

그래서 10진수 100은 2진수로 1100100, 8진수로 144, 16진수로 64입니다. 각 자리가 더 큰 가중치를 지니기 때문에, 진법이 높을수록 표현이 짧아진다는 점에 주목하세요. 이 간결함이야말로 2진수로는 다루기 힘든 바이트 값을 적을 때 16진수가 선호되는 바로 그 이유입니다.

큰 수, 음수, 그리고 입력 형식

이 변환기는 임의 정밀도의 큰 정수를 사용하므로 일반적인 64비트 한계를 훨씬 넘는 값도 반올림 없이 정확하게 변환합니다. 일반 숫자 자료형으로는 넘쳐 버릴 긴 해시나 식별자, 암호 관련 값을 다룰 때 유용합니다. 음수도 받습니다. 앞에 마이너스 기호를 붙이면 그 부호가 결과의 모든 진법에 그대로 적용됩니다.

편의를 위해 입력의 공백과 밑줄은 무시되므로, 1010_1101이나 255 255처럼 자릿수를 묶은 값도 하나의 숫자로 읽힙니다. 덕분에 읽기 좋게 형식을 갖춘 값을 먼저 정리하지 않고도 붙여넣을 수 있습니다. 다만 선택한 진법에서 모든 자릿수가 유효한지 확인하세요. 2진수에 2는 안 되고, 8진수에 8이나 9는 안 되며, 16진수에는 0-9와 A-F만 됩니다. 그렇지 않으면 입력이 그 진법에서 유효하지 않다고 표시됩니다.

진법 변환이 도움이 되는 곳

진법 변환은 프로그래밍과 시스템 작업에서 매일 하는 일입니다. 메모리 주소나 레지스터 값을 16진수로 읽고 그에 해당하는 10진수를 알고 싶을 때, 2진수 비트 패턴을 간결한 16진수로 옮길 때, 혹은 644 같은 Unix 권한을 8진수에서 해독할 때가 그렇습니다. 네 가지 진법을 함께 보면 머릿속으로 저글링할 필요도, 손으로 계산하다 실수할 위험도 사라집니다.

학습에도 똑같이 값집니다. 한 숫자를 2진수, 8진수, 10진수, 16진수로 나란히 풀어 보면 자리 표기법이 머리에 들어오고, 컴퓨터와 프로그래머, 표준이 저마다 특정 진법에 기대는 이유가 분명해집니다. 디버깅을 하든, 공부를 하든, 그저 어떤 값이 다른 체계에서 어떻게 보이는지 궁금하든, 진법 사이의 변환은 컴퓨팅에서 가장 폭넓게 유용한 연산 가운데 하나입니다.

자주 묻는 질문

16진수를 10진수로 어떻게 변환하나요?
기준 진법으로 16진수를 선택하고 ff 같은 16진수 값을 입력하세요. 10진수 결과인 255가 2진수, 8진수 표현과 함께 즉시 나타납니다.
어떤 진법을 지원하나요?
2진수(밑 2), 8진수(밑 8), 10진수(밑 10), 16진수(밑 16)를 지원합니다. 모든 값이 네 가지 진법으로 한 번에 표시되므로 두 번 변환할 필요가 없습니다.
아주 큰 숫자도 처리할 수 있나요?
네. 변환기는 임의 정밀도의 큰 정수를 사용하므로, 일반적인 64비트 한계를 훨씬 넘는 값도 반올림 없이 정확하게 변환합니다.
음수도 입력할 수 있나요?
네. 값 앞에 마이너스 기호를 붙이면 그 부호가 결과의 모든 진법에 그대로 적용됩니다.
서버로 전송되는 것이 있나요?
아니요. 변환은 전적으로 브라우저 안에서 실행되므로, 숫자가 기기를 벗어나지 않으며 아무것도 저장되지 않습니다.

관련 도구

이런 편리한 도구도 함께 사용해 보세요

유닉스 타임스탬프 변환기

JSON ↔ CSV 변환기

CSV를 JSON으로 변환기

JSON ↔ YAML 변환기

텍스트 ↔ 바이너리 변환기

텍스트 ↔ 16진수 변환기