Калькулятор переводит текст в двоичный код и обратно в трёх кодировках, а также показывает, как получить двоичную запись числа. Байты выводятся строго по 8 бит с ведущими нулями, поэтому результат совпадает с тем, что дают редакторы и языки программирования.
- текст в двоичный код и обратно, пересчёт идёт прямо при вводе;
- кодировки UTF-8, ASCII и Windows-1251 — видно, как одна и та же фраза меняет длину;
- выбор разделителя: пробел, запятая, каждый байт с новой строки или сплошной поток;
- разбор по символам: символ, десятичный код, шестнадцатеричный и двоичный;
- перевод числа в двоичную, восьмеричную и шестнадцатеричную систему с пошаговым делением;
- копирование результата и выгрузка в файл.
Что такое двоичный код
Двоичный код — это запись информации всего двумя знаками, 0 и 1. Один такой знак называется битом. Выбор в пользу двух состояний не случаен: транзистору проще надёжно различать «есть напряжение» и «нет напряжения», чем десять уровней сигнала.
Восемь бит объединяют в байт. Байт принимает 28 = 256 разных значений, то есть числа от 0 до 255. Именно байт стал единицей, которой измеряют объём данных и в которой хранят символы текста.
Как текст превращается в код
Компьютер не хранит буквы. Он хранит числа, а какое число какой букве соответствует, задаёт кодировка. Перевод текста в двоичный код идёт в три шага:
- каждый символ заменяют его числовым кодом по выбранной кодировке;
- число переводят в двоичную систему;
- запись дополняют слева нулями до целого числа байт.
Например, слово «Hi» в UTF-8 превращается в 01001000 01101001: «H» имеет код 72, «i» — код 105.
ASCII, UTF-8 и Windows-1251
Кодировка решает, сколько байт займёт символ и будет ли он вообще записан.
| Кодировка | Размер символа | Что покрывает |
|---|---|---|
| ASCII | 1 байт (реально 7 бит) | 128 символов: латиница, цифры, знаки препинания. Кириллицы нет |
| UTF-8 | от 1 до 4 байт | весь Unicode: латиница без диакритики 1 байт, кириллица 2, эмодзи от 3 байт |
| Windows-1251 | 1 байт | латиница и кириллица, по одному байту на символ |
Разница хорошо видна на слове «Привет». В 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 бит, ломают совместимость: их результат нельзя вставить в редактор или прочитать чужим инструментом.
Таблица символов
| Символ | Десятичный код | Двоичный код | Кодировка |
|---|---|---|---|
| пробел | 32 | 00100000 | любая |
| 0 | 48 | 00110000 | любая |
| A | 65 | 01000001 | любая |
| a | 97 | 01100001 | любая |
| А (русская) | 192 | 11000000 | Windows-1251 |
| я | 255 | 11111111 | Windows-1251 |
| Д | 208 148 | 11010000 10010100 | UTF-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, и по ней сразу видно границу сети.
Как пользоваться калькулятором
- Выберите вкладку: «Текст» для перевода фраз, «Число» для перевода чисел.
- Введите текст — двоичный код появится сразу; либо вставьте код в правое поле, чтобы получить текст.
- Задайте кодировку и разделитель, если нужен формат, отличный от UTF-8 с пробелами.
- Скопируйте результат или выгрузите его в файл.