양방향 진법 변환기 - 10진수, Hex, Base32, Base64

10진수를 Base16(16진수), Base32, Base64로 변환하거나 그 반대로 변환하는 양방향 진법 변환기입니다. 입력된 인코딩값의 진법을 자동으로 감지하고 문자를 검증하며, 9007199254740991까지의 안전한 정수 범위 내에서 정확한 변환 결과를 제공합니다.

양방향 진법 변환기

10진수와 표준 진법 인코딩(Base16/16진수, Base32, Base64) 간 변환. 변환하려면 어느 필드에나 값을 입력하세요.

양의 정수 입력 (최대: 9,007,199,254,740,991)

Base16, Base32 또는 Base64 인코딩 값 입력

진법 인코딩 정보

Base16 (16진수): 0-9와 A-F 문자 사용. 각 문자는 4비트 표현. 색상 코드와 메모리 주소에 흔히 사용됨.
Base32: A-Z와 2-7 문자 사용. 각 문자는 5비트 표현. 대소문자 구분 없고 사람이 읽기 쉬움.
Base64: A-Z, a-z, 0-9, +, / 문자 사용. 각 문자는 6비트 표현. 이진 데이터를 텍스트로 인코딩할 때 흔히 사용됨.
안전한 정수 한계: 자바스크립트는 정밀도 손실 없이 9,007,199,254,740,991(2^53 - 1)까지의 정수를 안전하게 표현할 수 있습니다.
📚

문서화

양방향 진법 변환기: 10진수 ↔ Base16, Base32, Base64

진법 변환기는 숫자를 한 표기 방식에서 다른 표기 방식으로 바꿔줍니다. 컴퓨터, URL, 데이터 포맷은 순수한 10진수를 그대로 저장하는 경우가 드물며, 대신 Base16(16진수), Base32, Base64처럼 더 압축적이거나 전송에 안전한 인코딩으로 값을 담습니다. 이 도구는 양방향 모두 변환합니다. 10진수를 입력하면 Base16/Base32/Base64 형태를 보여주고, 인코딩된 값을 붙여넣으면 10진수로 되돌려줍니다. 또한 입력된 값이 어떤 진법인지도 자동으로 감지합니다.

"진법"이란

모든 위치 기수법에는 진법(또는 기수)이 있습니다. 이는 한 자리 숫자를 나타내는 데 사용하는 고유한 기호의 개수를 뜻합니다. 10진수는 기수가 10입니다(0–9). 여기서 다루는 인코딩들은 더 짧은 문자열을 얻는 대신 더 큰 기호 집합을 사용합니다.

  • Base16(16진수) — 기호는 0-9A-F. 문자 하나가 4비트를 담습니다. 색상 코드 (#FF0000), 메모리 주소, 해시값 등에 널리 쓰입니다.
  • Base32 — 기호는 A-Z2-7(RFC 4648). 문자 하나가 5비트를 담습니다. 대소문자를 구분하지 않고 헷갈리기 쉬운 문자를 피하도록 설계되어, 소리 내어 읽거나 손으로 옮겨 적어도 안전합니다.
  • Base64 — 기호는 A-Z, a-z, 0-9, +, /(RFC 4648). 문자 하나가 6비트를 담습니다. 이메일이나 JSON 필드처럼 텍스트만 다루는 채널로 이진 데이터를 전달하는 표준적인 방법입니다.

진법이 클수록 같은 숫자를 나타내는 데 필요한 문자 수는 줄어들지만, 그만큼 기억해야 할 기호 집합은 커집니다.

변환기 사용법

이 도구에는 두 개의 입력란이 있으며, 어느 쪽에 입력하든 작동합니다.

  • 10진수 → 인코딩값. 10진수 입력란에 양의 정수를 입력하세요. 도구는 Base16, Base32, Base64 값을 한 번에 보여줍니다.
  • 인코딩값 → 10진수. Base16, Base32, Base64 값을 인코딩값 입력란에 붙여넣으세요. 도구가 진법을 감지하고 문자를 검증한 뒤 10진수를 반환합니다.

범위와 유효성 검사

값은 JavaScript의 최대 안전 정수인 9007199254740991(2^53 − 1에 해당)까지만 허용됩니다. 이 값을 넘어서면 정수를 정확히 표현할 수 없게 되어, 계속 변환을 시도하는 도구는 조용히 잘못된 자릿수를 반환하게 됩니다. 이 도구는 그런 추측 대신 범위 초과 오류를 표시합니다. 10진수 입력값은 음수가 아닌 정수여야 하며, 인코딩값 입력은 해당 진법에서 유효한 문자만 사용해야 합니다. 그렇지 않으면 도구는 임의로 디코딩하는 대신 오류를 표시합니다.

예제로 보기

  • 10진수 255. Base16 = FF. 255 = 15×16 + 15이므로 두 자리 모두 F가 됩니다. #FFFFFF가 흰색인 이유가 바로 이것입니다. 세 바이트 모두 최댓값이기 때문입니다.
  • 10진수 1000. Base16 = 3E8(3×256 + 14×16 + 8 = 1000).
  • FF 디코딩. Base16으로 감지되어 255로 디코딩됩니다.
  • 8비트로 이루어진 최댓값 바이트는 16진수로 FF입니다. 16진수 문자 하나가 4비트를 나타내므로 한 바이트당 두 문자가 필요합니다. 같은 바이트라도 Base32에서는 더 긴 문자열이, Base64에서는 패딩이 포함된 그룹이 필요합니다. 그래서 색상값이나 주소 같은 짧은 값에는 16진수가 여전히 가장 읽기 쉬운 선택입니다.

각 인코딩의 활용 분야

  • Base16 — CSS/HTML 색상, MAC 및 IPv6 주소, 암호화 해시와 체크섬, 이진 파일의 헥스 덤프.
  • Base32 — TOTP/2FA 비밀 키, 일부 파일 공유 및 DNS 기반 시스템, 대소문자 구분과 문자 혼동을 피해야 하는 사람이 직접 입력하거나 말로 전달하는 식별자.
  • Base64data: URI, 이메일 첨부파일(MIME), JSON이나 XML 안에 이미지나 인증서를 삽입할 때, JWT 토큰.

각 인코딩은 결국 같은 숫자를 나타내는 하나의 표현 방식일 뿐이므로, 이들 사이를 변환해도 값 자체는 절대 바뀌지 않습니다. 달라지는 것은 그 값을 적는 데 필요한 문자 수와, 그것이 안전하게 전달될 수 있는 채널뿐입니다.

🔗

관련 도구

귀하의 워크플로에 유용할 수 있는 더 많은 도구를 발견하세요.