언어: 한국어

tools / binary

binary/

텍스트와 2진수(0과 1)를 서로 변환합니다. 바이트마다 8자리이며, 문자 집합은 UTF-8, GBK, UTF-16 등을 고를 수 있습니다.

텍스트

2진수

자주 묻는 질문

한자 한 글자를 2진수로 바꾸면 몇 비트인가요?

바이트마다 항상 8비트로 쓰므로 길이는 문자 집합에 따라 달라집니다. UTF-8에서 흔한 한자는 3바이트, 즉 24비트이며 中은 11100100 10111000 10101101입니다. GBK, GB2312에서는 2바이트, 즉 16비트이며 中은 11010110 11010000입니다. 한글도 UTF-8에서는 3바이트입니다(예: 한은 11101101 10010101 10011100). 영문자와 숫자는 1바이트이며 A는 01000001입니다.

2진수를 텍스트로 바꿀 때 비트 수가 8의 배수가 아니라고 나오면 어떻게 하나요?

8비트가 1바이트에 해당하므로 공백을 지운 뒤의 비트 수는 8의 배수여야 하며, 아니면 끝에 몇 비트를 더하거나 지우라고 안내합니다. 대부분 복사하다가 비트가 빠지거나 더 들어간 경우입니다. 바이트마다 유효한 비트만 쓰는 출처도 있어서 예를 들어 A를 1000001(7비트)로 쓰기도 하는데, 이런 경우는 앞에 0을 붙여 8비트로 맞춘 뒤 입력하세요. 이 도구는 자동으로 채워 주지 않습니다.

"0이나 1이 아닙니다"라고 나오거나, 입력에 0b 접두어나 쉼표가 있으면 어떻게 하나요?

반각 0과 1만 인식하며, 공백, 줄바꿈, 탭은 무시합니다. 0b 접두어, 쉼표, 하이픈, 전각 0과 1은 인식하지 않고 몇 번째 문자인지 알려 주므로, 텍스트 편집기에서 지우거나 바꾼 뒤 다시 붙여넣으세요.

2진수를 텍스트로 바꿀 때 바이트가 올바른 텍스트가 아니라고 나오거나 결과가 깨져 보이면 어떻게 하나요?

2진수가 현재 문자 집합으로 인코딩된 것이 아니라는 뜻이므로 다른 문자 집합을 골라 보세요. 중국어 텍스트는 UTF-8과 GBK가 가장 흔합니다. 이 도구는 디코딩할 수 없는 바이트를 깨진 글자로 억지로 보여 주지 않습니다. 예외는 ISO-8859-1로, 모든 바이트가 어떤 문자에든 대응되므로 오류는 나지 않지만 중국어 텍스트는 깨진 글자로 바뀝니다. GBK와 GB2312는 둘 다 브라우저에 내장된 GB18030 디코더로 처리하므로 Python이나 Java보다 느슨하게 동작하며, GB2312를 골라도 GBK에만 있는 글자까지 디코딩됩니다. 데이터가 애초에 글자가 아니라면(이미지, 압축 파일) 어떤 문자 집합을 골라도 디코딩할 수 없습니다.

숫자 10을 입력하면 왜 1010이 나오지 않나요?

이 도구는 숫자 값이 아니라 글자의 바이트를 변환합니다. 입력한 10은 "1"과 "0" 두 글자이며 UTF-8로는 00110001 00110000입니다. 10진수 10을 2진수 1010으로 바꾸려면 진법 변환 도구가 필요하며, 여기서는 할 수 없습니다.

구분자를 "공백"으로 하는 것과 "없음"으로 하는 것은 어떻게 다른가요?

"공백"을 고르면 바이트 사이에 공백이 하나 들어가고, "없음"을 고르면 전체가 한 줄로 이어집니다. 바이트마다 비트는 높은 자리부터 낮은 자리 순으로 나열되며 맨 왼쪽이 최상위 비트입니다. 디코딩할 때는 두 형식 모두 인식하고, 공백이 바이트 경계에 있을 필요는 없으며 공백을 지운 뒤의 전체 비트 수만 봅니다.

UTF-16과 UTF-32 결과가 왜 이렇게 긴가요?

UTF-16은 문자마다 최소 2바이트이고 맨 앞에 FE FF(11111110 11111111)가 붙으므로 中은 11111110 11111111 01001110 00101101입니다. UTF-32는 문자마다 정확히 4바이트이며 中은 00000000 00000000 01001110 00101101입니다. 둘 다 빅 엔디언입니다.

입력한 내용이 업로드되나요?

아니요. 변환은 브라우저 안에서 이루어지며 네트워크 요청을 보내지 않고 저장도 하지 않습니다.