tools / binary
binary/
Перевод текста в двоичный код (0 и 1) и обратно, 8 бит на байт. Кодировки UTF-8, GBK, UTF-16 и другие.
Текст
Двоичный код
Частые вопросы
Сколько бит занимает в двоичном коде буква кириллицы или иероглиф
Каждый байт записывается ровно 8 битами, поэтому длина зависит от кодировки. В UTF-8 буква кириллицы занимает 2 байта, то есть 16 бит: «Я» — это 11010000 10101111. Распространенный иероглиф занимает 3 байта, то есть 24 бита: 中 — это 11100100 10111000 10101101. В GBK и GB2312 иероглиф занимает 2 байта, то есть 16 бит: 中 — это 11010110 11010000. Латинские буквы и цифры занимают 1 байт; A — это 01000001.
Что делать, если при переводе двоичного кода в текст пишет, что число бит не кратно 8
Каждые 8 бит образуют один байт, поэтому после удаления пробельных символов число бит должно быть кратно 8, иначе в сообщении будет сказано, сколько бит добавить или убрать в конце. Чаще всего при копировании часть бит потерялась или добавилась. Некоторые источники записывают у каждого байта только значащие биты, например A как 1000001 (7 бит); такие данные сначала нужно дополнить ведущими нулями до 8 бит, потому что инструмент сам этого не делает.
Что делать, если пишет, что символ не является 0 или 1, или во вводе есть префикс 0b либо запятые
Принимаются только ASCII-символы 0 и 1; пробелы, переводы строк и табуляции игнорируются. Префикс 0b, запятые, дефисы и полноширинные 0 и 1 не принимаются, а ошибка указывает позицию символа. Удалите или замените их в текстовом редакторе и вставьте данные снова.
Что делать, если при переводе двоичного кода в текст пишет, что байты не являются допустимым текстом, или получаются «кракозябры»
Это значит, что двоичные данные закодированы не в текущей кодировке, поэтому попробуйте другую. Для китайского текста чаще всего подходят UTF-8 и GBK. Кириллица в Windows-1251 или KOI8-R здесь не декодируется: этих кодировок в списке нет. Инструмент никогда не показывает недекодируемые байты в виде мусора. Единственное исключение — ISO-8859-1: каждый байт соответствует какому-то символу, поэтому ошибки не бывает, но китайский текст превращается в «кракозябры». GBK и GB2312 декодируются встроенным в браузер декодером GB18030, который мягче, чем в Python или Java, поэтому при выборе GB2312 тоже декодируются символы, которые есть только в GBK. Если данные изначально не были текстом (изображение, архив), ни одна кодировка их не декодирует.
Почему при вводе числа 10 получается не 1010
Инструмент переводит в двоичный код байты текста, а не числовые значения. Ввод 10 — это два символа, «1» и «0», которые в UTF-8 записываются как 00110001 00110000. Чтобы превратить десятичное число 10 в двоичное 1010, нужен конвертер систем счисления; здесь этого сделать нельзя.
Чем отличаются разделители «Пробел» и «Нет»
При выборе «Пробел» между байтами ставится один пробел, при выборе «Нет» биты идут одной сплошной строкой. Биты каждого байта идут от старшего к младшему, то есть самый левый бит — старший. При декодировании принимаются обе формы, пробелы не обязаны попадать на границы байтов: важно только общее число бит после удаления пробельных символов.
Почему результаты UTF-16 и UTF-32 такие длинные
UTF-16 использует не менее 2 байт на символ и добавляет в начало FE FF (11111110 11111111), поэтому 中 — это 11111110 11111111 01001110 00101101. UTF-32 использует ровно 4 байта на символ, и 中 — это 00000000 00000000 01001110 00101101. Обе кодировки big-endian.
Отправляется ли введенный текст на сервер
Нет. Преобразование выполняется в браузере, запросы не отправляются, ничего не сохраняется.