Как перевести текст в двоичный код
- Введите или вставьте текст в поле Ввод · Текст. Двоичный код сразу появляется в поле Результат · Двоичный.
- Разделитель под результатом задаёт, что стоит между байтами: «Пробел», «Нет»,
,,,или «Новая строка». - Кодировка под полем ввода определяет, как символы превращаются в байты. По умолчанию стоит UTF-8; для английского текста он совпадает с ASCII.
- Сохраните результат кнопкой Скопировать результат или Скачать. Для обратного перевода вставьте двоичный код в двоичный код в текст или переключите направление на Двоичный → Текст.
Слово по буквам
В двоичном коде Hello выглядит так: 01001000 01100101 01101100 01101100 01101111. Откуда берётся каждая группа:
| Буква | Десятичное | Двоичное |
|---|---|---|
H | 72 | 01001000 |
e | 101 | 01100101 |
l | 108 | 01101100 |
l | 108 | 01101100 |
o | 111 | 01101111 |
Десятичное число здесь равно ASCII-коду символа, а двоичное – то же число по основанию 2, дополненное до 8 цифр. Заметьте: H и h (01101000) отличаются только третьим битом слева. Так устроены все пары заглавных и строчных букв в ASCII, поэтому программы меняют регистр одной битовой операцией.
Варианты разделителя
Те же две буквы Hi при каждом значении Разделитель:
| Разделитель | Результат |
|---|---|
| Пробел | 01001000 01101001 |
| Нет | 0100100001101001 |
, | 01001000, 01101001 |
, | 01001000,01101001 |
| Новая строка | по байту на строку |
С пробелами проще всего читать и проверять. Слитная запись нужна для битовой строки в головоломке или спецификации протокола, но одна потерянная цифра сдвигает всё, что идёт за ней, так что держите копию с пробелами. Варианты с запятыми удобно вставлять в код или в ячейку таблицы, хотя для настоящего исходного кода лучше подходит Base64 в массив байтов: он пишет полноценный литерал массива.
Символы за пределами ASCII
Обычные латинские буквы, цифры и знаки препинания занимают по одному байту. Всё остальное в UTF-8 длиннее, и конвертер выписывает каждый байт:
| Текст | Байтов | Двоичный код (UTF-8) |
|---|---|---|
ñ | 2 | 11000011 10110001 |
中 | 3 | 11100100 10111000 10101101 |
🙂 | 4 | 11110000 10011111 10011001 10000010 |
Если сменить Кодировку, биты изменятся вместе с ней. В UTF-16LE Hi превращается в 01001000 00000000 01101001 00000000: по два байта на букву, нулевой байт второй. Если чужой двоичный код для того же текста не совпадает с вашим, первым делом сравните кодировки.
Текст, двоичный код и Base64
Двоичная запись байтов самая буквальная и заодно самая длинная: 8 символов на байт плюс разделители. Base64 записывает те же байты примерно в 1,33 символа на байт, поэтому им и переносят файлы и ключи внутри текстовых форматов. Hi в Base64 выглядит как SGk=, и текст в Base64 выдаёт его напрямую. Чтобы посмотреть, как 8-битные группы перегруппировываются в 6-битные кусочки Base64, преобразуйте строку через Base64 в двоичный код и прочитайте, как работает Base64.
Текст в двоичный код в коде
" ".join(f"{b:08b}" for b in "Hi".encode("utf-8")) # '01001000 01101001'
Array.from(new TextEncoder().encode("Hi"),
b => b.toString(2).padStart(8, "0")).join(" "); // '01001000 01101001'
Формат 08b и padStart(8, "0") добавляют ведущие нули. Без них H выходит как 1001000, и группы перестают выравниваться. Строки и байты в обоих языках разобраны на страницах Python и JavaScript.
Вопросы и ответы
Как будет «hello» в двоичном коде?
01101000 01100101 01101100 01101100 01101111. У Hello с заглавной буквы меняется только первая группа: она становится 01001000.
Как написать своё имя двоичным кодом?
Введите его в поле ввода и скопируйте результат. Каждая латинская буква превращается в 8 цифр, а пробел между именем и фамилией – в 00100000.
Почему на каждый символ ровно 8 цифр?
Компьютер хранит текст в байтах, а в байте 8 бит. Конвертер дополняет каждый байт ведущими нулями, поэтому A (65) записывается как 01000001, а не 1000001.
Почему некоторые символы дают 16 или 32 бита?
В UTF-8 им нужно больше одного байта. ñ занимает два байта, 中 – три, эмодзи – четыре. В UTF-16 даже обычные латинские буквы занимают по два байта.