텍스트 이진 변환기 — 인코딩 & 디코딩
텍스트를 입력하면 이진수(0과 1)로 변환하거나, 이진 코드를 붙여넣으면 텍스트로 디코딩합니다. 각 문자는 ASCII/Unicode 값을 사용해 변환됩니다. 공백 구분, 줄바꿈 구분, 연속 출력 중 선택할 수 있습니다. 스왑 버튼으로 마지막 변환을 즉시 반전할 수 있습니다.
작동 방식
텍스트에서 이진수로의 변환 원리
컴퓨터의 모든 문자는 숫자로 저장됩니다. 표준 ASCII 텍스트에서 'A'는 65, 'B'는 66, 소문자 'a'는 97, 공백은 32입니다. 텍스트를 이진수로 변환할 때, 이 도구는 각 문자의 수치(ASCII/Unicode 코드 포인트)를 조회한 후 그 숫자를 8자리로 채워 2진수(이진수)로 표현합니다. 예: 'H' = 10진수 72 = 이진수 01001000, 'e' = 10진수 101 = 이진수 01100101, 'l' = 10진수 108 = 이진수 01101100.
반대 과정(이진수에서 텍스트로)은 8비트 그룹을 읽어서 각각을 2진수에서 10진수로 변환한 뒤, 해당 코드 포인트의 문자를 찾습니다. 공백으로 구분된 이진수(예: 01001000 01100101)를 붙여넣으면 공백을 기준으로 분리합니다. 연속된 이진수(예: 0100100001100101)를 붙여넣으면 자동으로 8비트 단위로 묶습니다. 각 8비트 그룹에는 정확히 8개의 0 또는 1이 있어야 합니다. 그렇지 않으면 유효하지 않은 바이트를 알려주는 오류가 표시됩니다.
데이터 표현에서 이진수 vs. 16진수
이진수(2진법)는 0과 1만 사용하여 디지털 데이터의 가장 기본적인 표현입니다. 컴퓨터 메모리에 비트가 저장되는 방식을 직접적으로 반영합니다. 하지만 하나의 ASCII 문자를 표현하는 데 8자리가 필요해 길어지는 단점이 있습니다. 16진수(16진법, 0–9와 A–F 사용)는 더 간결합니다. 각 16진수 자릿수는 정확히 4개의 이진 자릿수(니블)를 나타내므로 1바이트가 단 2자리의 16진수가 됩니다. 'H'는 16진수로 0x48, 이진수로는 01001000입니다.
이진 표현은 개별 비트를 확인하거나 조작해야 할 때 가장 유용합니다. 예를 들어 비트마스크의 플래그 확인, Unicode 코드 포인트가 UTF-8 바이트로 인코딩되는 방식 이해, 또는 비트 수준에서 네트워크 패킷 구조 분석 등에 사용됩니다. 대부분의 데이터 검사 작업에는 16진수가 간결성과 가독성의 균형을 잘 제공합니다. 많은 디버거, 헥스 에디터, 프로토콜 분석기는 데이터를 16진수로 표시하며, 비트 수준 작업을 위한 선택적 이진수 보기도 제공합니다.
ASCII를 넘어서: Unicode와 멀티바이트 문자
표준 ASCII는 128개 문자(7비트, 코드 0–127)만 다루며, 영어 텍스트에는 충분하지만 악센트 문자, 비라틴 문자, 이모지에는 부족합니다. 현대 텍스트는 14만 개 이상의 문자를 정의하는 Unicode로 인코딩됩니다. 이 도구는 JavaScript의 내장 charCodeAt() 메서드를 사용하여 각 문자의 UTF-16 코드 단위를 반환합니다. 기본 라틴 문자의 경우 이는 Unicode 코드 포인트와 같으며, ASCII 코드와도 동일합니다.
'é'(233), 'ñ'(241), '中'(20013), '😀'(128512, UTF-16 서로게이트 쌍 사용) 같은 비ASCII 문자의 경우, 이진 표현이 더 길거나 다른 방식으로 나뉩니다. UTF-8이 실제로 디스크에 바이트를 저장하는 방식과 일치하는 이진 인코딩이 필요하다면, 먼저 문자열을 UTF-8로 인코딩한 후 각 결과 바이트를 이진수로 변환해야 합니다. 대부분의 교육적 목적이나 인코딩 퍼즐에서는 여기서 사용되는 문자별 접근 방식이 표준입니다.
자주 묻는 질문
›텍스트를 이진수로 어떻게 변환하나요?
텍스트의 각 문자는 ASCII 또는 Unicode 숫자 코드로 변환된 후, 8비트로 채워진 2진수(이진수)로 표현됩니다. 예: 'A' = 10진수 65 = 이진수 01000001. 'Hello'는 01001000 01100101 01101100 01101100 01101111이 됩니다. 이 도구는 변환을 자동으로 처리합니다. Text → Binary 모드를 선택하고 왼쪽 상자에 텍스트를 입력하기만 하면 됩니다.
›이진수를 텍스트로 어떻게 변환하나요?
Binary → Text 모드를 선택하고 이진 문자열을 붙여넣으세요. 이진수는 8비트 그룹(바이트)으로 구성되어야 합니다. 공백으로 구분된 경우 각 공백 구분 그룹이 하나의 바이트입니다. 연속된 경우(공백 없음) 도구가 8자리마다 하나의 바이트로 묶습니다. 각 바이트는 이진수에서 숫자로 변환된 후 ASCII/Unicode 문자로 조회됩니다.
›왜 각 이진 그룹은 8자리인가요?
1바이트는 8비트이며 ASCII는 7비트 코드(0–127)를 사용합니다. 관례상 ASCII 코드는 선두에 0이 붙은 전체 8비트 바이트에 저장되어 모든 항목이 정확히 8자리의 이진수가 됩니다. 이로써 분석이 명확해집니다: 8자리 = 1문자. 일부 오래된 표현에서는 선두 0을 생략한 7비트 ASCII를 사용하지만, 8비트 인코딩이 현대 표준입니다.
›일반 문자의 이진수는 무엇인가요?
공백 = 00100000, 'A' = 01000001, 'a' = 01100001, '0' = 00110000, 엔터/줄바꿈(LF) = 00001010, 마침표 '.' = 00101110. 패턴을 쉽게 알 수 있습니다: 대문자는 010으로 시작하고, 소문자는 011로 시작하며, 숫자는 0011로 시작합니다.
›영어 이외의 문자도 처리할 수 있나요?
예, Unicode 코드 포인트가 65,536 미만인 문자(대부분의 라틴, 그리스, 키릴, CJK, 아랍, 히브리 문자 등)에 대해 가능합니다. 각 문자는 이진수의 Unicode 코드 포인트로 변환됩니다. 단, 127보다 큰 문자는 8비트 이상이 필요하므로 8자리보다 긴 이진 그룹이 됩니다. 이모지와 U+FFFF를 초과하는 문자의 경우 JavaScript가 서로게이트 쌍으로 분리하여 예기치 않은 결과가 발생할 수 있습니다.
›스왑 버튼은 무엇을 하나요?
스왑은 현재 출력(인코딩 시 이진 문자열, 디코딩 시 텍스트)을 입력 상자로 이동하고 모드를 반대 방향으로 전환합니다. 이를 통해 즉시 왕복 변환을 확인할 수 있습니다: 텍스트를 인코딩하고 스왑을 클릭하여 원본 텍스트가 복원되는지 확인합니다. 이진 문자열이 무엇으로 인코딩되는지 탐색하는 데도 유용합니다.
›이진수와 모스 부호는 같은 건가요?
아니요. 이진수는 정확히 8비트(0과 1)를 사용해 각 문자를 ASCII/Unicode 수치로 표현합니다. 모스 부호는 영어 문자 빈도에 기반한 가변 길이의 점과 선으로 문자와 숫자를 표현합니다(E, T 같은 일반적인 문자는 더 짧은 코드를 가집니다). 두 시스템은 완전히 다른 인코딩 방식이지만, 모두 텍스트를 일련의 기호로 표현한다는 공통점이 있습니다.
›이진수와 Base64의 차이점은 무엇인가요?
이진수는 각 문자의 실제 비트 패턴, 즉 메모리에 저장된 원시 비트를 보여줍니다. Base64는 임의의 이진 데이터(파일이나 바이트 시퀀스)를 64개의 인쇄 가능한 문자를 사용해 안전한 ASCII 텍스트 문자열로 변환하는 상위 레벨 인코딩입니다. Base64는 텍스트만 허용하는 환경(이메일 첨부파일이나 데이터 URI 등)에 이진 데이터를 삽입할 때 사용됩니다. 이진 표현은 비트 패턴의 인간적 검사를 위한 것이고, Base64는 데이터 전송 및 저장을 위한 것입니다.
관련 도구
최종 업데이트: