한국어

진법 변환기 — 2진수·8진수·10진수·16진수 변환

2·8·10·16·36진법 및 임의 진법 변환 (큰 수, 음수, 0x·0b·0o 접두사)

브라우저에서 처리 · 서버로 전송되지 않음

소개

같은 수도 2진수로 쓰면 11111111, 16진수로 쓰면 ff, 10진수로 쓰면 255입니다. 메모리 주소나 색상 코드, 비트 마스크, 파일 권한(8진수)을 다룰 때 진법을 바꿔 읽는 일이 자주 생깁니다. 이 도구는 숫자 하나를 입력하면 2·8·10·16·36진법과 직접 정한 진법으로 한꺼번에 보여 줍니다.

사용법

  1. 숫자를 입력 칸에 넣습니다. 공백과 _는 자릿수 구분용으로 무시하므로 1111_0000처럼 써도 됩니다.
  2. 입력 진법을 고릅니다. 기본값 “자동”은 0x, 0b, 0o 접두사를 보고 판단하고, 접두사가 없으면 10진수로 봅니다.
  3. 아래 결과 표에서 원하는 진법의 값을 복사합니다. 사용자 지정 칸에는 2~36 사이 진법을 넣을 수 있습니다.
  4. 16진수 등을 대문자로 보고 싶으면 대문자 옵션을 켜세요.

기준

  • 계산은 BigInt로 합니다. 문자를 한 자리씩 읽으며 값 = 값 × 진법 + 자릿값으로 누적하므로 크기 제한이 없습니다(입력 20,000자 이내).
  • 자릿값은 숫자 0–9와 영문자 a–z(대소문자 구분 없음)로, 각각 0–9와 10–35에 대응합니다. 그래서 36진법까지만 가능합니다.
  • 진법보다 크거나 같은 자릿값이 나오면 몇 번째 문자가 왜 잘못됐는지 알려 줍니다. 예를 들어 2진법에 2, 8진법에 9를 넣으면 오류입니다.
  • 부호(-, +)는 맨 앞에서만 인식하고, 접두사 뒤에는 쓸 수 없습니다.
  • 비트 수는 절댓값을 2진수로 썼을 때의 길이입니다. 0은 1비트로 셉니다.

예시

입력 진법 2진수 16진수 10진수
255 10 11111111 ff 255
0xff 자동 11111111 ff 255
-0b101 자동 -101 -5 -5
18446744073709551617 10 1, 0이 63개, 1 10000000000000001 18446744073709551617

2^64+1은 일반 숫자로 계산하면 마지막 자리가 사라지는 값이지만 이 도구에서는 정확히 10000000000000001(16진수)로 나옵니다.

참고

  • 8진수는 chmod 755처럼 파일 권한을, 16진수는 메모리 주소와 색상(#1e90ff)을, 36진수는 짧은 ID 문자열을 만들 때 주로 씁니다.
  • 한글이나 이모지처럼 숫자가 아닌 문자가 섞이면 해당 문자의 위치와 함께 오류를 보여 줍니다.

자주 묻는 질문

아주 큰 수도 정확하게 변환되나요?

네. 자바스크립트의 일반 숫자는 2^53까지만 정확하지만, 이 도구는 임의 정밀도 정수(BigInt)로 계산해 2^64를 넘는 값도 한 자리 오차 없이 변환합니다. 입력은 20,000자까지 받습니다.

음수는 어떻게 표시되나요?

앞에 붙인 부호를 그대로 둔 채 절댓값을 변환합니다. -255는 16진수로 -ff이고, 2의 보수 표현(8비트 고정 폭 등)이 아닙니다. 비트 폭을 정한 2의 보수가 필요하면 결과를 직접 해석해야 합니다.

0x나 0b를 붙여도 되나요?

입력 진법을 자동으로 두면 0x(16진), 0b(2진), 0o(8진) 접두사를 읽고, 없으면 10진수로 봅니다. 진법을 직접 골랐다면 같은 진법의 접두사만 허용합니다. 16진법에서 0b1은 접두사가 아니라 숫자 0, b, 1로 읽습니다.

소수나 실수도 변환되나요?

아니요. 정수만 지원합니다. 소수점이 있으면 어느 위치의 문자가 잘못됐는지 알려 줍니다.

필요한 도구가 있나요?