텍스트 → 2진수 / ASCII 변환기란?
이 도구는 입력한 텍스트를 2진수 형태로 바꿔 줍니다. 컴퓨터는 문자 인코딩을 사용해 텍스트를 숫자로 저장하는데, 기본적인 영문자·숫자·문장 부호의 경우 그 인코딩이 바로 ASCII입니다. 각 문자는 고유한 숫자 코드에 대응하며, 여기서는 그 코드를 8비트 2진수 문자열(0과 1 여덟 자리)로 표시합니다. 또한 10진수 ASCII 코드와 16진수 값도 함께 보여 주므로 어떤 진법으로도 결과를 교차 확인할 수 있습니다.
사용 방법
입력란에 텍스트를 입력하거나 붙여넣은 뒤 실행하세요. 메인 박스에는 문자 하나당 8비트 묶음이 공백으로 구분된 전체 2진수 문자열이 표시됩니다. 아래 표에는 이에 대응하는 10진수 ASCII 코드와 16진수 값, 그리고 문자 개수와 총 비트 수가 나옵니다. 공백과 문장 부호도 하나의 문자로 계산되며, 공백은 ASCII 32에 해당합니다.
계산 공식 설명
각 문자 c에 대해 문자 코드(자바스크립트의 charCodeAt가 반환하는 값과 동일)를 가져와 2진수로 변환한 뒤, 왼쪽에 0을 채워 8자리로 맞춥니다.
예를 들어 알파벳 A의 ASCII 코드는 65이며, 2진수로는 1000001입니다. 이를 8자리로 채우면 01000001이 됩니다. 총 비트 수 = 8 × 문자 개수입니다.
$$\text{bits} = 8 \times n_{chars}$$
실제 예시
단어 Hi를 변환해 봅시다. "H"는 ASCII 72 → 2진수 01001000 → 16진수 48입니다. "i"는 ASCII 105 → 2진수 01101001 → 16진수 69입니다.
$$\text{"H"} \rightarrow 72 \rightarrow 01001000 \rightarrow \text{48}_{16}$$$$\text{"i"} \rightarrow 105 \rightarrow 01101001 \rightarrow \text{69}_{16}$$따라서 "Hi"는 01001000 01101001, 10진수 72 105, 16진수 48 69가 되며, 문자 2개에 총 16비트를 사용합니다.
ASCII 문자 참조 표
표준 ASCII는 각 문자에 0부터 127까지의 숫자를 할당합니다. 이 변환기에서는 각 문자의 십진 코드를 8비트 이진 값(8비트를 채우기 위해 0으로 왼쪽 채우기)과 두 자리 16진수 값으로 변환합니다. 아래 표는 일반적으로 사용되는 인쇄 가능 문자를 나열합니다.
| 문자 | 십진수 | 8비트 이진수 | 16진수 |
|---|---|---|---|
| (공백) | 32 | 00100000 | 20 |
| ! | 33 | 00100001 | 21 |
| 0 | 48 | 00110000 | 30 |
| 1 | 49 | 00110001 | 31 |
| 5 | 53 | 00110101 | 35 |
| 9 | 57 | 00111001 | 39 |
| : | 58 | 00111010 | 3A |
| ? | 63 | 00111111 | 3F |
| @ | 64 | 01000000 | 40 |
| A | 65 | 01000001 | 41 |
| B | 66 | 01000010 | 42 |
| M | 77 | 01001101 | 4D |
| Z | 90 | 01011010 | 5A |
| a | 97 | 01100001 | 61 |
| b | 98 | 01100010 | 62 |
| m | 109 | 01101101 | 6D |
| z | 122 | 01111010 | 7A |
예를 들어, 대문자 A는 십진 코드 65를 가지고 있으며, 이진수로는 1000001이고, 8비트로 채우면 01000001이 됩니다. 단일 문자로서 "Hi"라는 단어는 01001000 01101001으로 인코딩됩니다.
핵심 용어 설명
- 비트
- 디지털 데이터의 가장 작은 단위로, 0 또는 1의 단일 값을 보유합니다(이진 자리).
- 바이트
- 8비트의 그룹입니다. 바이트는 256개의 서로 다른 값(\(2^8 = 256\))을 나타낼 수 있으며, 이는 확장 ASCII 문자 1개를 저장하기에 정확히 충분합니다.
- ASCII
- 미국 정보 교환 표준 코드(American Standard Code for Information Interchange) — 128개 문자(코드 0–127), 문자, 숫자, 구두점 및 제어 코드를 포함하여 문자를 숫자에 매핑하는 문자 인코딩 표준입니다.
- 유니코드
- ASCII를 훨씬 뛰어넘어 거의 모든 쓰기 체계, 기호 및 이모지를 포함하는 범용 문자 표준입니다. 처음 128개의 유니코드 코드 포인트는 ASCII와 동일합니다.
- 코드 포인트
- 문자 집합 내에서 문자에 할당된 숫자 값입니다. 문자 "A"의 경우, 코드 포인트는 ASCII와 유니코드 모두에서 65입니다.
- 이진수
- 0과 1만 사용하는 2진법입니다. 각 자리는 2의 거듭제곱(1, 2, 4, 8, …)을 나타냅니다.
- 십진수
- 일상적인 계산에 사용되는 10진법으로, 숫자 0–9를 가지고 있으며 각 자리는 10의 거듭제곱을 나타냅니다.
- 16진수
- 16진법으로, 숫자 0–9와 문자 A–F를 사용합니다. 1개의 16진수 자리는 정확히 4비트를 나타내므로, 2개의 16진수 자리는 1바이트를 나타냅니다.
- 채우기 / 왼쪽 채우기
- 이진 값의 앞에 선행 0을 추가하여 모든 문자가 균일한 너비를 차지하도록 합니다. ASCII 바이트는 8비트로 왼쪽 채우기됩니다 — 예를 들어, 코드 65(이진수 1000001)는 01000001이 됩니다.
이진수, 십진수 및 16진수 변환 표
아래 표는 동일한 값이 십진수(10진법), 이진수(2진법) 및 16진수(16진법)에서 어떻게 나타나는지 보여줍니다. 2의 거듭제곱이 추가될 때마다 이진 자리가 하나 더 추가되는 방식과 4개의 이진 비트가 어떻게 하나의 16진수 자리에 깔끔하게 매핑되는지 주목하세요.
| 십진수 | 이진수(8비트) | 16진수 |
|---|---|---|
| 0 | 00000000 | 00 |
| 1 | 00000001 | 01 |
| 2 | 00000010 | 02 |
| 3 | 00000011 | 03 |
| 4 | 00000100 | 04 |
| 5 | 00000101 | 05 |
| 6 | 00000110 | 06 |
| 7 | 00000111 | 07 |
| 8 | 00001000 | 08 |
| 9 | 00001001 | 09 |
| 10 | 00001010 | 0A |
| 11 | 00001011 | 0B |
| 12 | 00001100 | 0C |
| 13 | 00001101 | 0D |
| 14 | 00001110 | 0E |
| 15 | 00001111 | 0F |
| 16 | 00010000 | 10 |
| 32 | 00100000 | 20 |
| 64 | 01000000 | 40 |
| 128 | 10000000 | 80 |
| 255 | 11111111 | FF |
확인으로, 십진수 255는 단일 바이트가 보유할 수 있는 최대값입니다. 16진수 형식은 FF이고 이진 형식은 8비트 모두가 1로 설정되어 있습니다. 마찬가지로, 십진수 64는 이진수 1000000으로 변환되며, 이는 01000000으로 채워집니다.
자주 묻는 질문
영문이 아닌 문자도 처리할 수 있나요? 표준 ASCII는 코드 포인트 0~127을 다룹니다. 127을 넘는 문자(악센트 부호, 이모지 등)는 해당 유니코드 코드 포인트를 사용하게 되며, 이 값은 8비트를 초과할 수 있어 표준 ASCII에 맞지 않을 수 있습니다.
왜 문자당 8비트인가요? 1바이트는 8비트이며, ASCII는 전통적으로 1바이트 안에 들어가기 때문에 8비트 단위 묶음이 일반적인 표현 방식입니다.
2진수를 다시 텍스트로 변환할 수 있나요? 이 도구는 텍스트를 2진수로 변환합니다. 반대로 되돌리려면 2진수를 8비트 단위로 나눈 뒤 각 값을 다시 ASCII 문자로 대응시키면 됩니다.