텍스트와 2진수 상호 변환기

텍스트를 바이트마다 8비트 묶음 하나씩 2진 코드로 바꾸거나, 0과 1로 이루어진 문자열을 읽을 수 있는 텍스트로 되돌립니다. UTF-8을 비롯한 다양한 문자 인코딩을 지원합니다.

브라우저에서만 실행되며 어떤 데이터도 업로드되지 않습니다.

사용 방법

  1. 텍스트를 2진수로 바꾸려면 ‘인코딩’을, 2진수를 텍스트로 되돌리려면 ‘디코딩’을 선택합니다.
  2. 텍스트나 2진수를 입력하거나 붙여넣거나 파일을 엽니다. 결과는 입력하는 즉시 갱신됩니다.
  3. 8비트 묶음 사이에 넣을 ‘구분자’를 ‘공백’, ‘없음’, ‘쉼표’, ‘줄 바꿈’ 중에서 고릅니다.
  4. 텍스트가 UTF-8이 아니면 ‘문자 인코딩’을 바꾼 다음 결과를 복사하거나 다운로드합니다.

텍스트가 2진수로 바뀌는 원리

컴퓨터는 텍스트를 바이트로 저장합니다. UTF-8 같은 문자 인코딩은 각 문자를 1바이트 이상에 대응시키며, 각 바이트는 0부터 255 사이의 숫자입니다. 이 숫자를 2진법으로 쓰면 최대 여덟 자리, 즉 8비트가 필요합니다. 이 변환기는 모든 바이트를 앞자리 0을 유지한 채 정확히 8비트로 표기합니다. 따라서 모든 묶음의 폭이 같고, 한 바이트가 어디서 끝나고 다음 바이트가 어디서 시작하는지 추측하지 않아도 2진 코드를 다시 읽을 수 있습니다.

UTF-8에서 영문자, 숫자, 문장 부호는 각각 1바이트이므로 문자 하나가 8비트 묶음 하나가 됩니다. 다른 문자는 더 많은 바이트를 차지합니다. é 같은 악센트 문자는 2바이트, 한글과 대부분의 한자·일본어 문자는 3바이트, 이모지는 4바이트를 사용하므로 이모지 하나는 32비트가 됩니다. 서유럽 텍스트를 문자당 1바이트로 표현하려면 ‘문자 인코딩’ 메뉴에서 ISO-8859-1 또는 Windows-1252를 선택하십시오.

2진수를 텍스트로 되돌리기

‘디코딩’ 모드에서는 공백, 쉼표, 줄 바꿈으로 구분한 비트 묶음을 붙여넣습니다. 구분된 묶음은 앞자리 0을 생략해도 되므로 7비트 ASCII로 출력하는 도구의 결과도 그대로 사용할 수 있습니다. 구분자 없이 0과 1이 이어진 문자열은 8비트씩 나누므로 길이가 8의 배수여야 합니다. 그 밖의 문자나 11111111(255)보다 큰 묶음은 위치와 함께 오류로 표시됩니다.

그런 다음 바이트를 선택한 문자 인코딩으로 읽습니다. 2진수를 만들 때 사용한 인코딩을 선택하거나, 출력을 ‘16진수’로 바꿔 원시 바이트를 확인하십시오.

코드로 텍스트를 2진수로 변환하기

# Python
' '.join(f'{b:08b}' for b in 'Hi'.encode())      # '01001000 01101001'
bytes(int(g, 2) for g in '01001000 01101001'.split()).decode()   # 'Hi'

// JavaScript
[...new TextEncoder().encode('Hi')]
  .map(b => b.toString(2).padStart(8, '0')).join(' ')   // '01001000 01101001'

사양

알파벳0 1
출력 크기바이트당 8자리(800%)
패딩없음
표준2진 자릿값 표기
대소문자 구분아니요

예시

입력 (UTF-8)출력
Hello, World!01001000 01100101 01101100 01101100 01101111 00101100 00100000 01010111 01101111 01110010 01101100 01100100 00100001
Base64.is01000010 01100001 01110011 01100101 00110110 00110100 00101110 01101001 01110011
你好11100100 10111101 10100000 11100101 10100101 10111101

자주 묻는 질문

문자 하나는 몇 비트입니까?

ASCII 문자와 UTF-8의 영문자는 문자 하나가 1바이트, 즉 8비트입니다. UTF-8에서 그 밖의 문자는 16, 24, 32비트를 차지하며 한글은 24비트입니다. UTF-16에서는 모든 문자가 최소 16비트를 차지합니다.

공백 없는 2진수도 텍스트로 변환할 수 있습니까?

예. 완전한 8비트 묶음이 끊김 없이 이어진 문자열이라면 가능합니다. 앞자리 0이 생략되어 8자리보다 짧은 묶음이 있다면, 디코더가 각 바이트의 끝을 알 수 있도록 공백이나 쉼표로 구분해 두십시오.

텍스트를 2진수로 바꾸는 것과 숫자를 2진수로 바꾸는 것은 같습니까?
아니요. 이 도구는 텍스트의 각 바이트를 따로 변환합니다. 1000 같은 숫자 하나를 2진법으로 바꾸려면 진법 변환기를 사용하십시오.
입력한 텍스트가 어딘가에 업로드됩니까?

아니요. 변환은 전적으로 브라우저 안에서 이루어지므로 변환하는 텍스트와 파일은 기기를 벗어나지 않습니다.