본문으로 건너뛰기

진법 변환기

큰 정수의 자릿수를 잃지 않고 부호 없는 정수를 2·8·10·16진수로 변환하세요.

BIN ↔ OCT ↔ DEC ↔ HEX

정수 변환

데이터는 이 브라우저에만 남습니다.

선택한 진법에 맞는 숫자를 부호·접두사·구분자·소수점 없이 입력하세요. 최대 4,096자리입니다.

FF

255 (진법 10) =

진법 변환기 사용법

  1. 현재 가진 부호 없는 정수를 입력하세요. 원래 진법에서 2·8·10·16진법 중 해당하는 것을 선택합니다.
  2. 정수를 수정한 뒤 숫자 변환을 누르면 적용됩니다. 한 번 변환한 후에는 어느 진법을 바꾸든 추가 확인 없이 읽기 전용 결과가 바로 갱신됩니다. JavaScript Number의 안전 범위를 넘어도 모든 정수 자릿수를 보존합니다.
  3. 변환을 마친 뒤 진법 바꾸기를 누르면 방향을 뒤집습니다. 정확한 결과가 다음 입력이 되어 긴 정수를 다시 입력하지 않고 왕복 변환을 확인할 수 있습니다.
  4. 결과 복사는 두 값과 각각의 진법이 담긴 등식을 일반 텍스트로 복사합니다. 메모, 소스 주석, 학습지나 지원 문의에 붙여 넣을 수 있습니다.

자릿값 기수법의 원리

진법의 밑은 사용할 수 있는 숫자 값의 개수입니다. 2진법은 0과 1, 8진법은 0–7, 10진법은 0–9, 16진법은 여기에 10–15를 뜻하는 A–F를 더합니다. 각 자리의 값은 그 숫자에 밑의 위치별 거듭제곱을 곱한 것이며 오른쪽에서 0부터 셉니다. 예를 들어 16진수 2F는 2 × 16¹ + 15 × 16⁰으로 10진수 47입니다.

같은 정수를 다른 진법으로 나타내기 위해 정확한 정수 값에서 결과 진법의 각 자리를 구합니다. 2·8·16진법은 특히 잘 대응합니다. 8진수 한 자리는 2진수 세 자리, 16진수 한 자리는 2진수 네 자리입니다. 따라서 16진법은 부호 없는 크기를 유지하면서 긴 비트 패턴을 간결하게 적는 데 유용합니다.

계산에는 JavaScript Number 대신 BigInt를 사용합니다. Number는 9,007,199,254,740,991을 넘으면 이웃한 모든 정수를 구분할 수 없지만 BigInt는 페이지의 입력 제한 안에서 큰 정수 연산을 정확하게 유지합니다. 각 유효한 입력 자릿수를 읽고 부동소수점 연산 없이 결과를 만듭니다.

앞자리 0은 정수 값을 바꾸지 않으므로 0의 결과는 0 하나이며 나머지는 0이 아닌 숫자로 시작합니다. 16진수 문자는 대소문자 모두 입력할 수 있고 결과는 대문자로 표시합니다. 이는 표기만 바꾸며 값은 그대로입니다.

진법 변환 예제

예제 1: 10진수 255를 16진수로

255를 입력하고 원래 진법을 10진법, 결과를 16진법으로 선택하세요. 255 = 15 × 16 + 15이므로 결과는 FF입니다. F 하나가 15를 나타냅니다. 진법을 바꾸면 FF가 정확히 255로 돌아옵니다.

예제 2: Number의 안전 범위를 넘는 큰 2진수

2진수 100000000000000000000000000000000000000000000000000001을 입력해 10진수로 변환하세요. 결과는 9,007,199,254,740,993이며 구분자 없이 9007199254740993으로 표시됩니다. Number의 안전 정수 한계보다 2 큰 값도 정확히 보존하며 원래 2진수로 되돌릴 수 있습니다.

진법 변환의 활용

입력 규칙과 제한

지원하는 모든 진법 변환

변환 방향방법정확한 예시
2진법 → 8진법 (bin → oct)입력 진법 2; 출력 진법 8.1010102 = 528
2진법 → 10진법 (bin → dec)입력 진법 2; 출력 진법 10.1010102 = 4210
2진법 → 16진법 (bin → hex)입력 진법 2; 출력 진법 16.1010102 = 2A16
8진법 → 2진법 (oct → bin)입력 진법 8; 출력 진법 2.528 = 1010102
8진법 → 10진법 (oct → dec)입력 진법 8; 출력 진법 10.528 = 4210
8진법 → 16진법 (oct → hex)입력 진법 8; 출력 진법 16.528 = 2A16
10진법 → 2진법 (dec → bin)입력 진법 10; 출력 진법 2.4210 = 1010102
10진법 → 8진법 (dec → oct)입력 진법 10; 출력 진법 8.4210 = 528
10진법 → 16진법 (dec → hex)입력 진법 10; 출력 진법 16.4210 = 2A16
16진법 → 2진법 (hex → bin)입력 진법 16; 출력 진법 2.2A16 = 1010102
16진법 → 8진법 (hex → oct)입력 진법 16; 출력 진법 8.2A16 = 528
16진법 → 10진법 (hex → dec)입력 진법 16; 출력 진법 10.2A16 = 4210

자주 묻는 질문

16진수 FF가 왜 10진수 255인가요?

왼쪽 F는 16이 15개, 오른쪽 F는 1이 15개라는 뜻입니다. 15 × 16 + 15 = 255이며 2진수로는 11111111입니다.

16진수 소문자를 입력해도 되나요?

네. a–f를 입력할 수 있으며 화면과 복사 결과에는 대문자로 표시됩니다.

앞자리 0이 사라진 이유는 무엇인가요?

앞자리 0은 부호 없는 정수 값을 바꾸지 않아 정규화된 표기를 반환합니다. 프로토콜이나 파일 형식에 고정 길이 채움이 필요하면 해당 규격을 확인한 뒤 0을 추가하세요.

아주 큰 정수는 반올림되나요?

아니요. 유효한 입력은 BigInt로 읽고 변환하므로 4,096자 제한 안에서 모든 정수 자릿수를 보존합니다. 부동소수점 Number 변환을 사용하지 않습니다.

16진수 입력을 텍스트나 색상으로 해석하나요?

아니요. 부호 없는 정수로만 처리합니다. 바이트를 문자로 해석하거나 RGB 채널을 나누거나 메모리 폭을 추정하거나 부호 있는 2의 보수 규칙을 적용하지 않습니다.