2진수 코드란
컴퓨터는 모든 것을 비트로 저장합니다. 비트는 꺼짐(0)이나 켜짐(1) 중 하나인 아주 작은 스위치입니다. 8비트가 1바이트이고, 1바이트에는 0부터 255까지의 숫자를 담을 수 있습니다. 텍스트는 문자마다 번호를 붙이고 그 번호를 2진수로 저장하는 방식으로 기록됩니다. 2진수 텍스트 변환기는 이 과정을 눈으로 보여 줍니다.
일반 영어 텍스트의 번호는 ASCII에서 옵니다. 대문자 H는 72이고, 2진수로 01001000입니다. 소문자 i는 105이고 01101001입니다. 둘을 합치면 Hi가 됩니다.
2진수 변환기 사용 방법
텍스트를 2진수로. 텍스트 입력란에 입력합니다. 2진수 입력란에 바이트마다 8자리 묶음으로 2진수가 나타납니다. 복사를 눌러 가져가세요.
2진수를 텍스트로. 2진수 입력란에 2진수를 붙여넣으면 왼쪽에 텍스트가 나타납니다. 다음 형식을 받아들입니다.
- 공백, 쉼표, 줄바꿈으로 나눈 묶음. 예:
01001000 01101001 - 길이가 8의 배수인 긴 문자열 하나
- 앞자리 0을 생략한 짧은 묶음. 예:
1001000 1101001
문제가 있으면 입력란 아래의 메시지가 무엇이 잘못됐는지 알려 줍니다. 예를 들어 어떤 묶음이 8비트보다 길거나 0과 1이 아닌 숫자가 들어 있다고 알려 줍니다.
바이트 사이 공백은 결과의 띄어쓰기를 켜고 끕니다. 지우기는 두 입력란을 모두 비웁니다.
숫자를 2진수로. 두 번째 패널은 진법 변환기입니다. 10진수, 2진수, 16진수, 8진수 중 아무 칸에나 정수를 입력하면 나머지 세 칸이 채워집니다. 음수도 되고, 계산기가 표시하지 못할 만큼 큰 수도 됩니다. 도구가 임의 정밀도 정수를 쓰기 때문입니다. 칸마다 복사 버튼이 따로 있습니다.
변환 원리
텍스트는 먼저 UTF-8 바이트로 인코딩됩니다. 그런 다음 각 바이트를 왼쪽에 0을 채운 8자리 2진수로 씁니다. 2진수를 읽을 때는 이 과정을 거꾸로 합니다. 숫자를 바이트 단위로 나누고, 그 바이트를 UTF-8로 디코딩합니다.
한글 음절은 UTF-8에서 한 글자가 3바이트입니다. 그래서 한글 한 글자는 2진수 8자리 묶음 세 개, 모두 24비트가 됩니다.
숫자 변환은 자릿값으로 이루어집니다. 2진수에서는 각 자리가 바로 오른쪽 자리의 두 배입니다. 1, 2, 4, 8, 16, 이런 식입니다. 42는 32 + 8 + 2이므로 2진수로 101010입니다.
예시: 텍스트를 2진수로
| 텍스트 | 2진수 |
|---|---|
A |
01000001 |
a |
01100001 |
0 |
00110000 |
| 공백 | 00100000 |
Hi |
01001000 01101001 |
é |
11000011 10101001 |
€ |
11100010 10000010 10101100 |
한글 |
11101101 10010101 10011100 11101010 10111000 10000000 |
숫자 0이 00000000이 아니라는 점에 주목하세요. 문자 “0”에는 48이라는 고유한 코드가 있습니다. 마지막 줄의 한글은 두 글자지만 6바이트이므로 묶음이 여섯 개입니다.
예시: 숫자를 2진수로
| 10진수 | 2진수 | 16진수 | 8진수 |
|---|---|---|---|
| 2 | 10 |
2 |
2 |
| 10 | 1010 |
A |
12 |
| 42 | 101010 |
2A |
52 |
| 100 | 1100100 |
64 |
144 |
| 255 | 11111111 |
FF |
377 |
| 1024 | 10000000000 |
400 |
2000 |
| 2026 | 11111101010 |
7EA |
3752 |
팁과 한계
- 가능하면 공백을 넣으세요. 띄어 쓴 2진수가 확인하기 쉽고, 한 묶음에서 숫자 하나가 빠져도 그 뒤의 글자가 전부 밀리지 않습니다.
- 텍스트의 2진수와 숫자의 2진수는 다릅니다. 텍스트 “42”는
00110100 00110010, 2바이트가 됩니다. 숫자 42는101010입니다. 텍스트는 위 패널에서, 숫자는 아래 패널에서 변환하세요. - 음수는 2의 보수가 아니라
-1010(-10)처럼 마이너스 기호를 붙여 표시합니다. - 2진수는 비밀이 아닙니다. 같은 데이터를 다르게 적은 것일 뿐입니다.
다른 방법으로 2진수 변환하기
Excel과 Google 스프레드시트. =DEC2BIN(42)는 101010을, =BIN2DEC("101010")은 42를 돌려줍니다. Excel의 DEC2BIN은 -512부터 511까지만 처리합니다. 더 큰 수는 =BASE(2026, 2)를 쓰세요.
JavaScript. (42).toString(2)는 101010을, parseInt('101010', 2)는 42를 돌려줍니다.
Python. format(42, '08b')는 00101010을 돌려줍니다. 텍스트는 ' '.join(format(b, '08b') for b in 'Hi'.encode())로 01001000 01101001을 얻습니다.
관련 도구
같은 바이트를 더 짧게 보려면 16진수 텍스트 변환기를 쓰세요. UTF-8 인코딩 도구는 한글처럼 1바이트보다 많이 쓰는 문자가 왜 생기는지 보여 줍니다. 두 가지 기호로 된 또 다른 부호가 궁금하다면 모스 부호 번역기를 사용해 보세요.