Конвертер текста в двоичный код

Перевод текста в последовательность нулей и единиц для каждого символа.

Если перевести букву A в двоичный вид, получится аккуратная цепочка из восьми знаков: 01000001. Тот же перевод для эмодзи даст результат в четыре раза длиннее, поскольку стандарт UTF-8 не мог вместить письменности всего мира в исходные семь бит, на которых когда-то строилась таблица ASCII.

Байты и биты в конвертере текста в двоичный код

Символ A имеет десятичный номер 65 в таблице ASCII. В двоичном представлении это выглядит как 01000001: если считать справа налево, разряды соответствуют значениям 1, 2, 4, 8, 16, 32, 64 и 128, а сумма 64 и 1 дает как раз 65. Текст в памяти — это цепочка таких восьмибитных блоков, по одному на символ.

Строчная буква a с кодом 97 записывается как 01100001. Это точно такой же набор битов, как у заглавной A, но с включенным битом со значением 32. Именно поэтому разница между строчными и прописными буквами латиницы всегда строго равна 32 позициям.

Границы ASCII и кодировка UTF-8

Первые 128 позиций в UTF-8 намеренно сделаны байт в байт идентичными стандарту ASCII: они занимают один байт, а старший бит всегда равен 0. Поэтому базовая латиница выглядит одинаково независимо от того, как ее интерпретируют.

За пределами кода 127 в UTF-8 включается многобайтовая схема. Начало байта с 110 указывает на последовательность из двух байтов, 1110 — из трех байтов, а 11110 обозначает четыре байта. Все последующие байты внутри символа начинаются с комбинации 10, что позволяет безошибочно отличать продолжение знака от начала нового.

Многобайтовое представление на примере символа é

Возьми букву é с кодом Unicode 233. В один байт она не помещается, поэтому UTF-8 отводит под нее два байта: 11000011 10101001 (в шестнадцатеричной записи это C3 A9). Стартовые биты 110 задают длину в два байта, а биты 10 обозначают байт продолжения.

Многие эмодзи расположены еще дальше и требуют предельные четыре байта стандарта UTF-8 со стартовым префиксом 11110. По этой причине значки и эмодзи занимают значительно больше битов, чем привычные буквы латиницы.

Ошибки при обработке многобайтовых знаков конвертером текста в двоичный код

  • В кодировке ASCII нет номеров выше 127, поэтому символы с диакритикой и эмодзи в нее просто не помещаются.
  • Если считывать многобайтовую строку строго по одному байту без поддержки UTF-8, символ распадется на бессмысленные фрагменты.
  • Именно так возникает искажение текста, когда читаемые слова превращаются в цепочки вопросительных знаков или случайных знаков из-за неверной кодировки.

Вопросы о конвертере текста в двоичный код

Сколько бит содержит один символ текста?

Базовый знак ASCII занимает восемь бит, то есть один байт. Символы UTF-8 за пределами диапазона ASCII занимают два, три или четыре байта, то есть 16, 24 или 32 бита в зависимости от блока Unicode.

Почему буква A кодируется именно как 01000001?

В стандарте ASCII 1963 года заглавной A присвоили число 65. При разложении 65 по степеням двойки (1, 2, 4, 8, 16, 32, 64 и 128) складываются 64 и 1, образуя комбинацию 01000001.

Теряются ли данные при переводе текста в двоичный код?

Нет, если исходная кодировка известна и сохраняется неизменной. Двоичная запись просто отображает те же самые байты, которыми компьютер сохраняет текст.

Почему в одних записях по 7 бит на знак, а в других по 8?

Исходная таблица ASCII требовала всего семь бит для 128 значений. Но память компьютеров организована в 8-битные байты, поэтому слева обычно дописывают ведущий ноль.

Можно ли вернуть двоичный код обратно в обычный текст?

Да, достаточно разбить поток нулей и единиц на 8-битные группы, перевести каждую в числовое значение байта и сопоставить с таблицей символов нужной кодировки.

Cookie
Мы заботимся о ваших данных и хотели бы использовать файлы cookie, чтобы улучшить ваш опыт.