Перевод в двоичный код

Кодировка:
UTF-8 (по умолчанию)
ASCII
Windows-1251
Разделитель:
Пробел
Без разделителя
Запятая
Каждый байт с новой строки

Калькулятор переводит текст в двоичный код и обратно в трёх кодировках, а также показывает, как получить двоичную запись числа. Байты выводятся строго по 8 бит с ведущими нулями, поэтому результат совпадает с тем, что дают редакторы и языки программирования.

  • текст в двоичный код и обратно, пересчёт идёт прямо при вводе;
  • кодировки UTF-8, ASCII и Windows-1251 - видно, как одна и та же фраза меняет длину;
  • выбор разделителя: пробел, запятая, каждый байт с новой строки или сплошной поток;
  • разбор по символам: символ, десятичный код, шестнадцатеричный и двоичный;
  • перевод числа в двоичную, восьмеричную и шестнадцатеричную систему с пошаговым делением;
  • копирование результата и выгрузка в файл.

Что такое двоичный код

Двоичный код - это запись информации всего двумя знаками, 0 и 1. Один такой знак называется битом. Выбор в пользу двух состояний не случаен: транзистору проще надёжно различать «есть напряжение» и «нет напряжения», чем десять уровней сигнала.

Восемь бит объединяют в байт. Байт принимает 28 = 256 разных значений, то есть числа от 0 до 255. Именно байт стал единицей, которой измеряют объём данных и в которой хранят символы текста.

Как текст превращается в код

Компьютер не хранит буквы. Он хранит числа, а какое число какой букве соответствует, задаёт кодировка. Перевод текста в двоичный код идёт в три шага:

  1. каждый символ заменяют его числовым кодом по выбранной кодировке;
  2. число переводят в двоичную систему;
  3. запись дополняют слева нулями до целого числа байт.

Например, слово «Hi» в UTF-8 превращается в 01001000 01101001: «H» имеет код 72, «i» - код 105.

ASCII, UTF-8 и Windows-1251

Кодировка решает, сколько байт займёт символ и будет ли он вообще записан.

КодировкаРазмер символаЧто покрывает
ASCII1 байт (реально 7 бит)128 символов: латиница, цифры, знаки препинания. Кириллицы нет
UTF-8от 1 до 4 байтвесь Unicode: латиница 1 байт, кириллица 2, эмодзи 4
Windows-12511 байтлатиница и кириллица, по одному байту на символ

Разница хорошо видна на слове «Привет». В UTF-8 оно занимает 12 байт, потому что каждая русская буква кодируется двумя байтами. В Windows-1251 то же слово укладывается в 6 байт. При этом английское «Hello» в обеих кодировках даст одинаковые 5 байт, потому что UTF-8 совместим с ASCII в первых 128 позициях.

Отсюда растут и «кракозябры»: если текст записали в Windows-1251, а читают как UTF-8, байты кириллицы не складываются в правильные последовательности и превращаются в мусор.

Почему «A» это 01000001, а не 1000001

Код латинской «A» равен 65. Если перевести 65 в двоичную систему напрямую, получится 1000001 - семь знаков. Но байт всегда состоит из восьми бит, поэтому слева дописывают ведущий ноль.

Это не украшение записи. Двоичный код идёт сплошным потоком, и разбить его на символы можно только потому, что каждый байт занимает ровно 8 позиций. Конвертеры, которые выдают 7 бит, ломают совместимость: их результат нельзя вставить в редактор или прочитать чужим инструментом.

Таблица символов

СимволДесятичный кодДвоичный кодКодировка
пробел3200100000любая
04800110000любая
A6501000001любая
a9701100001любая
А (русская)19211000000Windows-1251
я25511111111Windows-1251
Д208 14811010000 10010100UTF-8

Обратите внимание на последнюю строку: в UTF-8 одна русская буква описывается парой байт, поэтому и десятичных кодов там два.

Перевод числа в двоичную систему

Числовой режим решает вторую задачу, которую тоже называют переводом в двоичный код: получить двоичную запись числа. Способ школьный - деление на 2 с остатками.

Возьмём 42. Делим на 2 и записываем остатки: 42:2 = 21 (остаток 0), 21:2 = 10 (1), 10:2 = 5 (0), 5:2 = 2 (1), 2:2 = 1 (0), 1:2 = 0 (1). Читаем остатки снизу вверх и получаем 101010.

Проверить легко разложением по степеням двойки: 101010 это 32 + 8 + 2 = 42. Калькулятор показывает все шаги деления, а заодно восьмеричную и шестнадцатеричную запись и количество разрядов.

Где это применяется

  • Учёба. Задачи по информатике на перевод между системами счисления и на кодирование текста.
  • Разбор кодировок. Когда текст пришёл «кракозябрами», сравнение байт в UTF-8 и Windows-1251 показывает, где произошла подмена.
  • Побитовые операции. Флаги и маски в программировании удобно читать именно в двоичном виде.
  • Сети. Маска подсети 255.255.255.0 в двоичной записи это 11111111 11111111 11111111 00000000, и по ней сразу видно границу сети.

Как пользоваться калькулятором

  1. Выберите вкладку: «Текст» для перевода фраз, «Число» для перевода чисел.
  2. Введите текст - двоичный код появится сразу; либо вставьте код в правое поле, чтобы получить текст.
  3. Задайте кодировку и разделитель, если нужен формат, отличный от UTF-8 с пробелами.
  4. Скопируйте результат или выгрузите его в файл.

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

Почему буква «A» в двоичном коде записывается как 01000001?

Почему кириллица занимает два байта, а латиница один?

Чем ASCII отличается от UTF-8?

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

Как перевести число в двоичную систему вручную?

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

Почему после перевода получаются «кракозябры»?

Источники

  • RFC 3629 «UTF-8, a transformation format of ISO 10646» - правила кодирования UTF-8 и длина последовательностей.
  • ISO/IEC 10646 «Universal Coded Character Set (UCS)» - таблица символов Unicode.
  • ISO/IEC 646 «Information technology. ISO 7-bit coded character set for information interchange» - основа ASCII.
  • Кодовая страница Windows-1251 (CP1251) - однобайтовая кириллическая кодировка Microsoft.

Другие конвертеры

Оставьте свою оценку:
Оценок пока мало: 2 голоса. Средняя появится после пяти.