~ / developer / number-base-converter

🔢 진법 변환기

아무 칸에나 숫자를 넣으면 나머지 진법이 바로 바뀌어요. 비트 폭을 고르면 음수를 2의 보수로 보여 주고, 아래 비트 칸을 눌러 한 비트씩 켜고 끌 수 있어요.

number
예시:
options
비트 폭
해석
표시
bits — 눌러서 0/1 바꾸기
info

사용법

  1. 2진수·8진수·10진수·16진수·N진수 중 아무 칸에나 숫자를 입력하세요. 나머지 칸이 입력하는 즉시 바뀌어요.
  2. 0b1010, 0o17, 0xFF처럼 접두사를 붙여도 되고, 1111 0000·1_000_000·1,000,000처럼 띄어 쓰거나 묶어 써도 알아서 무시해요. 16진수는 대·소문자 모두 돼요.
  3. 음수를 비트로 보고 싶으면 비트 폭(8·16·32·64비트)을 고르세요. -1이 32비트에서 FFFF FFFF로 보여요.
  4. 아래 비트 그리드에서 칸을 누르면 그 비트가 0↔1로 바뀌고 모든 진법이 함께 바뀌어요. 플래그·권한 비트(예: 리눅스 파일 권한 755)를 맞춰 볼 때 편해요.
  5. 각 줄의 copy는 묶음 공백·쉼표를 뺀 값을 복사해요. 코드에 바로 붙일 거면 "0b·0o·0x 붙이기"를 켜세요.

진법 변환 원리

N진수 → 10진수는 각 자리 숫자에 N의 거듭제곱을 곱해 더해요. 16진수 2F = 2×16 + 15 = 47. 2진수 101101 = 32 + 8 + 4 + 1 = 45.

10진수 → N진수는 N으로 계속 나누고 나머지를 거꾸로 읽어요. 45 ÷ 2 → 나머지 1, 0, 1, 1, 0, 1 → 거꾸로 101101.

2진수 ↔ 16진수·8진수는 더 쉬워요. 16 = 2⁴라서 2진수 4자리가 16진수 1자리, 8 = 2³이라서 3자리가 8진수 1자리예요. 1011 0110 → B6. 이 도구가 2진수와 16진수를 4자리씩 묶어 보여 주는 이유예요.

10진수2진수8진수16진수
0000000
1000111
7011177
81000108
10101012A
15111117F
161 00002010
1000110 010014464
2551111 1111377FF
10240100 0000 00002000400
655351111 1111 1111 1111177777FFFF

음수와 2의 보수

컴퓨터는 음수를 대부분 2의 보수로 저장해요. n비트에서 음수 −x는 2ⁿ − x의 비트 패턴이 돼요. 그래서 8비트에서 −1은 256 − 1 = 255 = 1111 1111, −128은 1000 0000이에요. 맨 왼쪽 비트(MSB)가 1이면 음수예요.

비트 폭부호 있는 범위 (signed)부호 없는 범위 (unsigned)대표 자료형
8비트−128 ~ 1270 ~ 255int8 / byte, uint8
16비트−32,768 ~ 32,7670 ~ 65,535short, uint16
32비트−2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295int, uint32
64비트약 −9.22×10¹⁸ ~ 9.22×10¹⁸0 ~ 18,446,744,073,709,551,615long, uint64

비트 폭을 고른 상태에서 2·8·16진수 칸에 입력한 값은 비트 패턴으로 읽어요. 예를 들어 8비트·부호 있음에서 16진수 80을 넣으면 10진수는 −128, "부호 있는 정수"를 끄면 128이에요. 같은 비트를 어떻게 해석하느냐의 차이라서, 옵션을 바꾸면 비트는 그대로 두고 10진수 값만 바뀌어요. 범위를 넘는 값은 경고를 띄우고 아래쪽 n비트만 보여 줘요(실제 오버플로와 같은 결과).

지원 범위

모든 계산은 브라우저 안에서만 이뤄지고 입력값은 서버로 전송되지 않아요. 자바스크립트 Number(부동소수점)로 2⁵³ 이상의 수를 다루면 끝자리가 틀어지지만(예: 9007199254740993 → …992), 이 도구는 BigInt를 써서 그대로 유지해요.

자주 묻는 질문

10진수를 2진수로 바꾸는 법은?
2로 계속 나눠 나머지를 아래에서 위로 읽으면 돼요. 13 ÷ 2 = 6…1, 6 ÷ 2 = 3…0, 3 ÷ 2 = 1…1, 1 ÷ 2 = 0…1 → 1101. 이 변환기의 10진수 칸에 넣으면 바로 확인할 수 있어요.
16진수 FF는 10진수로 얼마인가요?
F는 15라서 FF = 15×16 + 15 = 255예요. 2진수로는 1111 1111(8비트가 모두 1)이고, 색상 코드 #FFFFFF의 각 두 자리가 바로 0~255 값이에요.
음수는 2진수로 어떻게 표현하나요?
정해진 비트 폭에서 2의 보수로 표현해요. 모든 비트를 뒤집고 1을 더하면 돼요. 8비트 5 = 0000 0101 → 뒤집기 1111 1010 → +1 = 1111 1011이 −5예요. 비트 폭을 8비트로 두고 10진수 칸에 −5를 넣어 보세요.
0x, 0b, 0o 접두사는 무슨 뜻인가요?
프로그래밍 언어에서 진법을 나타내는 표시예요. 0x는 16진수(hex), 0b는 2진수(binary), 0o는 8진수(octal)예요. 이 도구는 접두사가 붙어 있어도 그대로 읽고, 복사할 때 붙일지도 고를 수 있어요.
아주 큰 수도 정확히 변환되나요?
네. BigInt로 계산해서 64비트 최댓값 18,446,744,073,709,551,615(= 0xFFFF FFFF FFFF FFFF)나 그보다 훨씬 긴 수도 자릿수 손실 없이 변환해요. 다만 소수점이 있는 실수는 지원하지 않아요.
리눅스 권한 755는 무슨 뜻인가요?
8진수 755를 2진수로 바꾸면 111 101 101이에요. 세 자리씩 소유자·그룹·기타 사용자의 읽기(4)·쓰기(2)·실행(1) 권한이라서 소유자는 rwx, 나머지는 r-x예요. 8진수 칸에 755를 넣고 비트 그리드로 확인해 보세요.

이 도구와 함께 보면 좋은 글

관련 도구

더 둘러보기

💻 개발자 다른 도구

🔥 많이 찾는 도구

🔮 재미로 한 번 더

📝 읽어 볼 만한 글

글 전체 보기 →