진수 변환기

2진수·10진수·16진수·8진수와 2~36진법을 상호 변환. 아주 큰 정수도 오차 없이, 순환소수는 괄호로 표시하고 8~128비트 2의 보수를 지원합니다. 잘못 입력한 자리를 알려 줍니다.

  • 브라우저에서 처리
  • 데이터가 브라우저 밖으로 나가지 않습니다
  • 무료 · 회원가입 불필요
정수부를 밑줄이나 공백으로 구분합니다. 10진법은 세 자리, 나머지는 네 자리씩 묶습니다. 접두사는 2·8·16진법에, 대소문자는 11진법 이상의 영문자에 적용됩니다. 복사에는 구분자와 접두사를 포함한 표시값 전체가 들어가며 가로 스크롤로 가려진 부분도 포함됩니다.
8, 16, 32, 64, 128비트를 선택하면 2진수와 16진수의 2의 보수 결과가 추가됩니다. 정수만 지원합니다. N비트의 범위는 -2^(N-1)부터 2^N-1까지이며 비트 패턴은 선택한 너비로 채워집니다.
먼저 비트 너비를 선택합니다. 입력 정수를 해당 너비의 부호 있는 패턴으로 읽으며 최상위 비트가 1이면 음수입니다. 음수 입력은 부호 있는 범위 안에 있어야 하고 양수 패턴은 선택한 비트 수를 넘을 수 없습니다.
2~36진법을 선택합니다. 결과는 입력할 때마다 갱신됩니다. 선택한 진법과 일치하는 0b, 0o, 0x 접두사를 쓸 수 있으며, 10진법에서도 이 접두사로 진법을 판별합니다.
정수부와 소수부를 합쳐 최대 20,000자리입니다. 정수는 정밀도를 유지합니다. 소수는 최대 64자리를 출력하며 괄호는 순환 부분, 생략 부호는 반올림 없이 잘린 부분을 나타냅니다. 상태 줄에는 입력 오류와 해당 문자 위치가 표시됩니다.
10진수
2진수
16진수
8진수
다섯 번째 행의 기본값은 36진법입니다. 2~36진법 중 하나를 선택하면 즉시 갱신됩니다. 나머지 네 행은 10·2·16·8진수로 고정됩니다.
계산 과정 보기
 
결과 아래에서 계산 과정을 펼칩니다. 10진법 이외의 입력은 자리값을 전개하며, 나눗셈은 대상 진법이 10 및 입력 진법과 다를 때 표시합니다. 정수 부분만 다룹니다. 전개는 유효 입력 64자리까지, 나눗셈은 10진수 64자리까지 표시합니다.
자세한 가이드 읽기 진수 변환기 가이드: 2진수·8진수·10진수·16진수 완벽 정리
예시·자세한 설명·자주 묻는 질문 실제 출력이 있는 예시, 다른 도구와의 차이, 자주 묻는 질문.

예시 1: C의 printf가 찍은 16진수를 음수로 되돌리기

C에서 int x = -10;을 printf("%x", (unsigned)x)로 출력하면 int가 32비트인 환경에서 fffffff6이 나옵니다. 로그에서 이 값을 봤다면 16진수를 고르고 2의 보수를 32비트로 정한 뒤 “입력을 부호 있는 수로 읽기”를 체크합니다.

10진수 줄에 -10이 나오고, 체크하지 않으면 같은 값을 4294967286으로 읽습니다. 반대로 -10을 입력하면 32비트 16진수 줄에 FFFFFFF6, 8비트로 바꾸면 F6이 나옵니다.

예시 2: 64비트 최댓값이 바뀌지 않는지 확인하기

JavaScript의 Number는 2^53 − 1까지만 정수를 정확히 담습니다(MDN). 이 도구는 BigInt로 한 자리씩 읽기 때문에 16진수 FFFFFFFFFFFFFFFF(부호 없는 64비트 최댓값)가 정확히 다음 값이 됩니다.

18446744073709551615. Python의 int()는 기본 설정에서 10진수 4,300자리를 넘는 문자열을 거부합니다(Python 문서). 이 도구는 20,000자리까지 변환합니다.

예시 3: 띄어 쓴 2진수 그대로 붙여 넣기

교재나 데이터시트는 2진수를 4자리씩 띄어 씁니다. 1101 0110을 그대로 붙여 넣으면 공백을 구분 기호로 보고 10진수 214, 16진수 D6을 냅니다. 밑줄(1101_0110)과 C++14의 작은따옴표(1101'0110)도 같은 방식으로 처리합니다.

예시 4: 소수 변환

10진수 0.75는 2진수 0.11, 16진수 0.C로 딱 끝납니다. 0.1은 2진수 0.0(0011), 16진수 0.1(9)처럼 괄호 안이 끝없이 반복됩니다. JavaScript의 수는 IEEE 754 배정밀도라서 0.1을 근삿값으로 저장하고, 그래서 0.1 + 0.2가 0.3이 되지 않습니다. 이 도구는 분수로 정확히 계산하며 반올림하지 않습니다.

입력 규칙과 오류 메시지

입력읽는 방법
1111_0000, 1111 0000숫자 사이의 구분 기호는 무시
1,234,56710진수의 세 자리 구분으로만 읽음
0x1F, 0o17, 0b101입력 진법과 맞는 접두사는 떼어 냄. 10진수를 고른 상태에서는 접두사로 진법을 판단
255, FF전각 문자를 반각으로 읽음
#FF573316진수에서 색상 코드로 읽음

그 밖의 문자가 있으면 변환을 멈추고 위치를 알려 줍니다. 10진수에서 1F를 입력하면 “2번째 문자 “F”는 10진수 숫자가 아닙니다(사용 가능: 0–9). 16진수라면 16진법을 고르거나 앞에 0x를 붙이세요.”라고 표시합니다.

다른 도구와의 차이

Bing에서 “진수 변환” 상위에 나오는 calculkorea 진법 변환기에 2026-10-01 같은 값을 넣었습니다. 10진수 9007199254740993은 10진수 칸에 9,007,199,254,740,992로, 2진수 칸에는 마지막 1이 빠진 값으로 나왔습니다. 16진수 FFFFFFFFFFFFFFFF는 18,446,744,073,709,552,000이 되었고 16진수 칸은 0x10000000000000000으로 바뀌었습니다. 음수 -10, 소수 0.1, 전각 255, 1111_0000, 0x1F는 “입력한 진법에 맞지 않는 문자가 포함되어 있습니다”로 거부되었고 어느 문자인지는 나오지 않았습니다. 이 도구는 앞의 두 값을 정확히 변환하고, 나머지도 모두 변환합니다.

제한 사항

  • 2~36진법(숫자 0–9와 영문 A–Z)을 지원하며 Python int(), JavaScript toString()과 같은 범위입니다. 58진법, 62진법, Base64 문자 표는 지원하지 않습니다.
  • 한 수에 20,000자리까지.
  • 0.0(0011)의 괄호는 읽기용 표기라서 입력란에 다시 붙여 넣을 수 없습니다.
  • 부동소수점 수의 IEEE 754 비트 구성(부호·지수·가수)은 보여 주지 않습니다.
  • 2의 보수는 정수에만 쓸 수 있고, 비트 수는 8·16·32·64·128 중에서 고릅니다.

문자열을 2진수로 바꾸려면 이진수 변환기 (텍스트 ↔ 2진수)나 ASCII 변환기를, 파일 권한의 8진수는 Chmod 계산기를, 서브넷 마스크의 2진수 표기는 IP 서브넷 계산기를 쓰세요.

FAQ

2진수를 10진수로 바꾸는 방법은?

각 자리의 숫자에 자리값(오른쪽부터 1, 2, 4, 8, 16…)을 곱해 더합니다. 11010110은 128 + 64 + 16 + 4 + 2 = 214입니다. 도구 아래의 "계산 과정 보기"를 열면 입력한 수의 전개식과 반대 방향의 나눗셈 과정을 볼 수 있습니다.

0.1이 2진수에서 0.0(0011)이 되는 이유는?

0.1은 1/10이고 분모에 5가 들어 있습니다. 2진수로 끝나는 소수는 분모가 2의 거듭제곱인 분수뿐이라 0.1은 끝없이 반복됩니다. 괄호 안이 반복되는 부분이며, 0.0(0011)은 0.000110011…을 뜻합니다.

음수의 2의 보수는 어떻게 구하나요?

음수(예: -10)를 입력하고 "2의 보수"에서 비트 수를 고릅니다. 8비트는 11110110(F6), 32비트는 FFFFFFF6입니다. 반대로 F6을 입력하고 8비트를 고른 뒤 "입력을 부호 있는 수로 읽기"를 체크하면 -10이 됩니다.

몇 자리까지 변환할 수 있나요?

한 수에 20,000자리까지입니다. 정수는 BigInt로 계산하므로 오차가 없습니다. 소수 부분이 64자리 안에서 끝나지도 반복되지도 않으면 64자리에서 잘라 …를 붙입니다.

큰 수에서 다른 변환기와 결과가 다른 이유는?

많은 변환기는 값을 JavaScript Number로 저장합니다. Number가 정확히 나타낼 수 있는 정수는 2^53 − 1(9,007,199,254,740,991)까지이고, 그보다 큰 수는 끝자리가 바뀝니다. 이 도구에 9007199254740993을 넣으면 16진수 결과는 20000000000001이지만, Number로 계산하는 도구는 20000000000000을 냅니다.

입력한 숫자가 전송되거나 저장되나요?

전송되지 않습니다. 변환은 브라우저 탭 안에서 이루어집니다. 브라우저의 localStorage에는 설정(입력 진법, 그 밖의 진법, 자릿수 묶기, 접두사, 소문자, 2의 보수 비트 너비, 부호 있는 수로 읽기, 계산 과정의 진법)만 저장하고 숫자 자체는 저장하지 않습니다. 페이지 통계는 도구 이름과 동작만 기록합니다. 입력이 1.5초 멈추면 convert를 한 번, 복사하면 copy를 기록하며 숫자는 포함하지 않습니다.