사용 방법
숫자를 입력하고 그 숫자가 어떤 진법으로 쓰였는지(2진수, 8진수, 10진수, 16진수) 고른 뒤 변환을 누르세요. 같은 값이 네 가지 진법으로 한꺼번에 나오고, 각각 복사 버튼이 있습니다. 함께 필요한 비트 수, 왼쪽에 0을 채워 8비트(1바이트) 단위로 맞춘 2진수, 그리고 2진수가 아닌 숫자를 넣었을 때는 2로 계속 나누는 풀이 과정을 표로 보여 줍니다.
2진법의 원리: 자리값은 2의 거듭제곱
10진법에서는 한 자리 왼쪽으로 갈 때마다 자리값이 10배가 됩니다(일의 자리, 십의 자리, 백의 자리). 2진법에서는 2배씩 커져서 오른쪽부터 1, 2, 4, 8, 16, 32, 64, 128입니다. 2진수의 한 자리, 즉 비트는 0 아니면 1이므로 2진수는 어떤 2의 거듭제곱을 더할지 알려 주는 표시일 뿐입니다. 11111111은 8비트가 모두 1이라서 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255이고, 이것이 1바이트에 들어가는 가장 큰 수입니다. 그래서 256부터는 9비트가 필요합니다.
10진수를 2진수로 변환하는 방법
수를 2로 나누어 나머지(0 또는 1)를 적고, 몫을 다시 2로 나누는 일을 몫이 0이 될 때까지 반복합니다. 나머지를 아래에서 위로 읽으면 2진수가 됩니다. 37의 풀이:
- 37 ÷ 2 = 18, 나머지 1
- 18 ÷ 2 = 9, 나머지 0
- 9 ÷ 2 = 4, 나머지 1
- 4 ÷ 2 = 2, 나머지 0
- 2 ÷ 2 = 1, 나머지 0
- 1 ÷ 2 = 0, 나머지 1
마지막 나머지부터 읽으면 100101입니다. 검산: 32 + 4 + 1 = 37.
2진수를 10진수로 변환하는 공식
각 비트에 그 자리의 자리값(2의 거듭제곱)을 곱해 모두 더합니다. 101101에서 1이 있는 자리의 값은 32, 8, 4, 1이므로 32 + 8 + 4 + 1 = 45입니다. 식으로 쓰면 1×2⁵ + 0×2⁴ + 1×2³ + 1×2² + 0×2¹ + 1×2⁰이며, 0인 자리는 더할 것이 없으니 1인 자리만 세면 됩니다.
10진수·2진수·8진수·16진수 변환표
| 10진수 | 2진수 | 8진수 | 16진수 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 100 | 1100100 | 144 | 64 |
| 127 | 1111111 | 177 | 7F |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
| 1,000 | 1111101000 | 1750 | 3E8 |
| 1,024 | 10000000000 | 2000 | 400 |
2진수와 16진수·8진수: 자리를 묶어서 변환
16진수는 0~9와 10~15를 나타내는 A~F를 씁니다. 16 = 2⁴이므로 16진수 한 자리는 정확히 2진수 네 자리에 해당합니다. 2진수를 오른쪽부터 네 자리씩 끊어 각 묶음을 16진수 한 글자로 바꾸면 됩니다. 예를 들어 1010 0110은 A6이고, 1바이트는 언제나 16진수 두 자리(00~FF)입니다. 그래서 메모리 주소, MAC 주소, 웹 색상 #FF8800(빨강 FF, 초록 88, 파랑 00) 같은 값은 16진수로 씁니다.
8진수는 0~7을 쓰고 한 자리가 2진수 세 자리에 해당하므로 오른쪽부터 세 자리씩 묶습니다. 8진수 777은 2진수로 111 111 111, 10진수로 511, 16진수로 1FF입니다. 요즘은 리눅스의 파일 권한에서 자주 보이는데, chmod 755는 111 101 101, 곧 rwxr-xr-x를 뜻합니다.
예시: 16진수 FF를 모든 진법으로
F는 2진수로 1111이므로 FF는 11111111입니다. 2의 거듭제곱을 더하면 10진수로 255, 같은 비트를 오른쪽부터 세 자리씩 묶으면(011 111 111) 8진수로 377입니다. 비트 수는 8, 정확히 1바이트입니다.
8·16·32·64비트로 나타낼 수 있는 가장 큰 수
| 비트 폭 | 최댓값 | 16진수 |
|---|---|---|
| 8비트 | 255 | FF |
| 16비트 | 65,535 | FFFF |
| 32비트 | 4,294,967,295 | FFFFFFFF |
| 64비트 | 18,446,744,073,709,551,615 | FFFFFFFFFFFFFFFF |
n비트로는 0부터 2ⁿ − 1까지 2ⁿ가지 값을 나타낼 수 있습니다. 문자열을 컴퓨터용 인코딩으로 바꾸는 일은 진법 변환과 다르니, 그럴 때는 Base64 인코딩·디코딩처럼 문자용 도구를 쓰세요.
자주 묻는 질문
10을 2진수로 바꾸면?
10은 2진수로 1010입니다. 10 ÷ 2 = 5 나머지 0, 5 ÷ 2 = 2 나머지 1, 2 ÷ 2 = 1 나머지 0, 1 ÷ 2 = 0 나머지 1이므로 나머지를 아래에서 위로 읽으면 1010, 곧 8 + 2입니다.
음수는 2진수로 어떻게 나타내나요?
컴퓨터는 비트 수를 정해 두고 2의 보수를 씁니다. 절댓값의 모든 비트를 뒤집고 1을 더하는 방식으로, 8비트에서 −1은 11111111, −128은 10000000입니다. 부호 없는 255, 128과 같은 비트 배열이므로 비트 수와 표현 방식을 미리 정해야 합니다. 이 변환기는 0 이상의 정수만 다룹니다.
소수도 2진수로 바꿀 수 있나요?
이 도구로는 안 됩니다. 소수점 아래는 2의 음의 거듭제곱으로 나타내는데(2진수 0.1은 1/2, 0.01은 1/4), 10진수 소수 상당수는 2진수에서 끝나지 않습니다. 0.1은 0.000110011…로 이어지기 때문에 많은 프로그래밍 언어에서 0.1 + 0.2가 정확히 0.3이 되지 않습니다.
0b, 0o, 0x는 무슨 뜻인가요?
대부분의 프로그래밍 언어에서 진법을 나타내는 접두사입니다. 0b는 2진수, 0o는 8진수, 0x는 16진수이며 0b11111111, 0o377, 0xFF, 255는 모두 같은 수입니다. 변환기는 고른 진법의 접두사를 받아서 떼어 냅니다.
어떤 수를 나타내려면 몇 비트가 필요한가요?
그 수를 넘지 않는 가장 큰 2의 거듭제곱을 찾아 지수에 1을 더합니다. 255는 2⁸ = 256보다 작아서 8비트에 들어가고, 256은 9비트가 필요합니다. 「비트 수」 행이 이 값이고, 「필요한 바이트 수」는 이를 8비트 단위로 올림한 값입니다.
최종 수정일: 2026년 10월 15일