Skip to content
Logo Any Help Me

텍스트 ↔ 2진수 / 모스부호 변환기

바이트 구분자:
 

글자의 밑바닥은 어떻게 생겼나

여러분이 읽는 모든 글자는 숫자로 저장되고, 모든 숫자는 비트로 저장됩니다. 텍스트를 2진수로 바꾸면 그것이 눈에 보입니다. 알파벳 A는 01000001이 되는데, 10진수로 65이고 16진수로 0x41인 같은 값입니다.

이 변환기는 양방향으로 동작해 텍스트를 2진수로, 2진수를 다시 읽을 수 있는 텍스트로 바꿉니다. 교육, 퍼즐, 그리고 어떤 바이트 열이 실제로 무엇을 담고 있는지 확인할 때 쓸모가 있습니다.

텍스트와 2진수를 변환하는 방법

붙여 넣은 내용을 보고 도구가 어느 방향인지 판단합니다.

  1. 텍스트를 붙여 넣으면 각 글자가 비트 묶음으로 표현된 2진수를 볼 수 있습니다.
  2. 또는 공백으로 구분된 여덟 자리 묶음의 2진수를 붙여 넣어 텍스트로 되돌리세요.
  3. 되돌리기가 실패하면 묶음 단위를 확인하세요. 2진 텍스트는 관례상 8비트 바이트로 쓰며, 자릿수 하나가 어긋나면 그 뒤가 모두 밀립니다.
  4. 영어가 아닌 글자는 각각 8비트를 넘는다는 점에 유의하세요. UTF-8이 그것들을 2~4바이트에 걸쳐 인코딩하기 때문입니다.
  5. 결과를 있는 그대로 활용하세요. 무언가를 숨기는 수단이 아니라 인코딩을 보여 주는 시연입니다. 2진수는 보려는 사람에게는 손쉽게 읽힙니다.

어떤 글자가 더 많은 바이트를 쓰는 이유

ASCII는 영어 알파벳, 숫자, 흔한 문장부호를 각각 1바이트로 담습니다. 영어 텍스트가 8비트씩 깔끔하게 나뉘는 이유가 그것입니다. UTF-8은 ASCII를 그대로 두면서 유니코드의 모든 글자로 확장하는데, 대가는 가변 길이입니다. 악센트가 붙은 라틴 문자는 2바이트, 대부분의 아시아 문자는 3바이트, 이모지는 대개 4바이트를 씁니다.

이 가변성이 일상에서 겪는 많은 일을 설명합니다. 글자가 아니라 바이트를 세는 입력란이 악센트가 든 이름을 더 일찍 거부하는 이유, 이모지 하나가 메시지 제한에서 여러 글자를 잡아먹는 이유, 고정된 바이트 위치에서 문자열을 자르면 글자가 반으로 갈려 대체 기호가 나타나는 이유가 모두 여기 있습니다.

글자와 그 인코딩

같은 글자를 10진수, 16진수, 2진수로 나타낸 것과 UTF-8이 쓰는 바이트 수입니다.

글자10진수16진수2진수UTF-8 바이트
A650x41010000011
a970x61011000011
0480x30001100001
공백320x20001000001
é2330xE911000011 101010012
546200xD55C3바이트3
😀1285120x1F6004바이트4

A가 65이고 a가 97로 정확히 32 차이라는 점에 주목하세요. 그 간격은 비트 하나이며, 그래서 ASCII에서 대소문자를 바꾸는 것이 표를 찾는 일이 아니라 비트 연산인 것입니다. 숫자가 0이 아니라 48에서 시작하는 것도 같은 맥락입니다.

2진수는 암호화가 아닙니다

2진수로 바꾼 텍스트는 어떤 의미로도 숨겨지지 않습니다. 변환은 공개되어 있고 되돌릴 수 있으며 열쇠가 필요 없으므로, 패턴을 알아보는 사람이라면 몇 초 만에 읽습니다. 비밀번호나 메시지를 가리는 데 쓰면 보호 효과는 전혀 없고 그런 겉모습만 생깁니다.

진짜 쓸모는 이해에 있습니다. 글자가 숫자이고, 그 숫자가 비트이며, A와 a의 비트 패턴이 한 자리만 다르다는 것을 눈으로 보면, 설명만으로는 안 되던 텍스트 아래의 층이 구체적으로 다가옵니다. 실무보다 교육 자료와 퍼즐에서 훨씬 자주 등장하는 이유가 그것입니다.

자주 묻는 질문

텍스트를 2진수로 어떻게 바꾸나요?
각 글자를 숫자로 찾은 뒤 그 숫자를 2진법으로 씁니다. 알파벳 A는 65이고, 8비트로는 01000001입니다.
왜 어떤 글자는 8비트를 넘나요?
UTF-8이 ASCII 밖의 글자에 더 많은 바이트를 쓰기 때문입니다. 악센트가 붙은 라틴 문자는 2바이트, 대부분의 아시아 문자는 3바이트, 이모지는 대개 4바이트입니다.
A는 65인데 a는 왜 97인가요?
정확히 32 차이이고, 2진법에서 이는 비트 하나입니다. 그래서 ASCII의 대소문자 변환이 표 조회가 아니라 비트 연산인 것입니다.
2진수가 되돌아가지 않습니다. 무엇이 잘못됐나요?
대개 묶음 단위입니다. 2진 텍스트는 여덟 자리 바이트로 쓰므로, 자릿수가 하나 빠지거나 남으면 그 뒤가 모두 밀려 엉뚱한 결과가 나옵니다.
2진수로 바꾸는 것이 암호화인가요?
아니요. 변환은 공개되어 있고 열쇠 없이 되돌릴 수 있으므로, 패턴을 알아보는 사람에게는 아무것도 숨기지 못합니다.
여기서 2진수와 16진수는 무엇이 다른가요?
같은 값에 대한 두 가지 표기입니다. 16진수 한 자리가 4비트라서 더 간결하며, 그래서 바이트 값은 0과 1 여덟 개보다 16진수로 쓰는 것이 보통입니다.
입력한 글이 어디론가 전송되나요?
아니요. 변환은 브라우저에서 실행되며 붙여 넣은 내용은 전송되거나 저장되지 않습니다.

더 많은 도구 보기: 도구

모두 보기 →