본문으로 건너뛰기
ZEKILO Dev

진법 변환

숫자를 입력하면 2진수, 8진수, 10진수, 16진수와 원하는 진법으로 한 번에 보여 줍니다.

입력값은 브라우저 밖으로 나가지 않음ECMAScript기준일 2026.10.03

입력

Esc를 누른 뒤 Tab을 누르면 입력란에서 나갑니다.

출력

진법별 값
2진수—
8진수—
10진수—
16진수—
36진수—

진법 변환 사용 방법

  1. 1입력 칸에 숫자를 입력하거나 「예시 넣기」를 누릅니다.
  2. 2입력 진법을 고릅니다. 0b, 0o, 0x 접두어는 자동으로 알아봅니다.
  3. 3필요한 행 끝의 「복사」 버튼을 누릅니다.

진법 변환 옵션

입력 진법
2, 8, 10(기본), 16, 사용자 가운데 고릅니다. 숫자가 0b, 0o, 0x로 시작하면 그 접두어가 진법을 정합니다.
사용자 진법
2~36 사이의 진법입니다(기본 36). 입력 진법으로 사용자를 고르면 이 진법으로 읽고, 결과 표의 마지막 행에는 항상 이 진법의 값이 나옵니다.
음수
부호(-)(기본)는 음수 앞에 -를 붙입니다. 2의 보수(8·16·32·64비트)는 2진수·8진수·16진수 행을 고정 폭 비트열로 보여 주고, 10진수와 사용자 진법 행은 부호를 그대로 둡니다.
2진·16진 4자리씩 구분
켜면(기본) 2진수와 16진수를 4자리씩 공백으로 나눠 보여 줍니다. 다른 행은 나누지 않습니다.
복사할 때 공백 포함
끄면(기본) 복사 버튼이 자리 구분 공백을 뺀 숫자만 복사합니다. 켜면 보이는 그대로 복사합니다.

BigInt로 정확하게 계산합니다

JavaScript의 숫자는 64비트 부동소수점이라 정수를 2^53까지만 정확하게 나타냅니다. parseInt와 Number.prototype.toString으로 만든 변환기는 64비트 ID나 해시처럼 그보다 큰 값의 끝자리를 조용히 바꿔 버립니다. 이 도구는 모든 계산을 ECMAScript의 임의 정밀도 정수 BigInt로 하기 때문에 결과의 모든 자리가 정확합니다. 입력은 1,000자리까지 받습니다.

10보다 큰 진법은 1035를 영문자 az로 나타냅니다. 그래서 가장 큰 진법이 36입니다.

2의 보수

N비트 2의 보수에서 음수 v는 2^N + v의 비트열로 저장합니다. 8비트에서 -1은 256 - 1 = 255이고 11111111로 씁니다. 범위는 -128~127입니다. 2진수·8진수·16진수 행은 이 비트열을 비트 수에 맞춰 0으로 채워 보여 주고, 10진수와 사용자 진법 행은 값 자체를 부호와 함께 보여 줍니다.

진법 변환 예시

  • 10진수를 2진수, 8진수, 16진수로

    자리 구분을 켜면 2진수 행은 1111 1111로 보입니다. 복사하면 11111111이 나옵니다.

    입력

    255

    출력

    2진수: 11111111
    8진수: 377
    16진수: ff
  • 0x 접두어가 붙은 16진수

    입력 진법을 무엇으로 골랐든 접두어가 진법을 정합니다.

    입력

    0x7fffffff

    출력

    10진수: 2147483647
  • 64비트에 담을 수 없는 큰 수

    2^64입니다. 어느 자리도 반올림되지 않습니다.

    입력

    18446744073709551616

    출력

    16진수: 10000000000000000
  • 음수의 8비트 2의 보수

    음수: 2의 보수 8비트.

    입력

    -1

    출력

    2진수: 11111111
  • 8비트의 가장 작은 값

    음수: 2의 보수 8비트. -129는 8비트 범위(-128~127) 밖이라고 알려 줍니다.

    입력

    -128

    출력

    2진수: 10000000
  • 진법에 맞지 않는 글자

    입력 진법: 16.

    입력

    12g

    출력

    16진수에 'g'(3번째 글자)는 쓸 수 없습니다.

예시는 이 도구를 검증하는 기준 사례의 값입니다.

진법 변환 자주 묻는 질문

입력값이 서버로 전송되나요?

아니요. 입력과 결과는 이 브라우저 안에서만 처리되며 저장하지도 않습니다. 새로 고침하면 사라집니다.

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

네. 부동소수점 숫자가 아니라 BigInt 정수로 계산하기 때문에 18446744073709551616(2^64)이 반올림 없이 16진수 10000000000000000이 됩니다. 입력은 1,000자리까지 넣을 수 있습니다.

0.5 같은 소수도 변환할 수 있나요?

아니요. 정수만 지원합니다. 소수점이 있으면 오류로 알려 줍니다.

2의 보수는 어떻게 동작하나요?

8, 16, 32, 64비트 가운데 고릅니다. 8비트에서 -1은 11111111, -128은 10000000입니다. 값은 그 비트 수의 부호 있는 범위 안에 있어야 하므로 8비트에서는 -128보다 작거나 127보다 큰 값을 범위 밖이라고 알려 줍니다.

어떤 글자를 입력할 수 있나요?

고른 진법에 맞는 숫자와 영문자(대소문자 모두), 맨 앞의 + 또는 -, 그리고 0b, 0o, 0x 접두어를 쓸 수 있습니다. 숫자 사이의 공백과 밑줄은 무시하므로 1111 1111이나 0xFFFF_FFFF도 그대로 넣을 수 있습니다.

진법에 맞지 않는 글자가 있으면 어떻게 되나요?

어느 글자가 몇 번째에 있는지 알려 줍니다. 16진수로 12g를 넣으면 'g'(3번째 글자)는 16진수에 쓸 수 없다고 나옵니다.

처리 방식·표준

  • 처리 위치: 이 브라우저 (내 기기). 전송하거나 저장하지 않습니다.
  • 표준: ECMAScript
  • 엔진: ZEKILO Dev 진법 변환기 (BigInt) (자체 구현)
  • 접두어 글자가 고른 진법의 숫자이면 숫자로 읽습니다. 입력 진법이 16일 때 0b1은 2진수 1이 아니라 16진수 b1입니다.
  • 결과의 영문자는 소문자입니다. 빈 입력은 오류가 아닙니다.
  • 기준일 2026.10.03
  • 변경 이력: 2026.10.03 처음 공개
오픈소스 라이선스 →
결과가 이상한가요? 오류 신고하기(입력값은 첨부되지 않습니다)