Двоичный код: как компьютер понимает буквы
В школе на информатике показывают цепочку нулей и единиц и говорят: «это то, как компьютер видит текст». Если вы в тот момент подумали, что слово «привет» для процессора выглядит как магический набор байтов — вы не одиноки. На деле механика простая, и её можно потрогать руками: переведите любой текст в двоичный код в нашем конвертере и посмотрите, что получится.
Ноль и единица — это просто выключатель
Компьютер физически умеет различать только два состояния: ток есть и тока нет. Единица — есть, ноль — нет. Одна такая ячейка называется битом, и сама по себе она бесполезна: максимум, что можно сказать одним битом, — «да» или «нет». Но если взять восемь бит подряд (байт), комбинаций уже 256 — хватит на весь алфавит, цифры и знаки препинания.
От байта к букве: таблица соответствий
Чтобы байт превратился в букву, нужна договорённость: какая комбинация какому символу соответствует. Такая договорённость называется кодировкой. Классическая ASCII говорила: 01000001 — это большая латинская A, 01000010 — B и так далее. Для кириллицы её не хватало, поэтому появились расширения, а потом единый стандарт Unicode, где на символ отводится уже несколько байт.
Отсюда и берётся привычное слово «байт на символ». Латиница в UTF-8 занимает один байт, а вот русская буква — два. Поэтому текст на русском в двоичном виде всегда длиннее английского: например, «Привет» — это шесть букв и двенадцать байт.
A → 01000001 (1 байт, ASCII)
П → 11010000 10011111 (2 байта, UTF-8)Как перевести текст самому
- возьмите первый символ текста;
- найдите его код в кодировке — это число;
- переведите число в двоичную систему (делите с остатком на 2 и читаете остатки снизу вверх);
- повторите для каждого символа и склейте результаты через пробел.
Кстати, обратная задача не менее полезна. Если вам достался файл или сообщение из нулей и единиц, знание кодировки позволяет прочитать его. Ошибётесь с кодировкой — получите те самые «кракозябры», которые выскакивают при открытии документа не в той кодировке.
Зачем это знать на практике
- отладка: когда данные «доезжают» битым текстом, вы сразу поймёте, что проблема в кодировке, а не в программе;
- объёмы: понимание, что кириллица весит вдвое больше латиницы, объясняет, почему один и тот же текст в разных системах занимает разное место;
- экзамены и собеседования: перевод между системами счисления — классический вопрос, а конвертер систем счисления поможет проверить себя.
Двоичная система кажется абстракцией ровно до первого практического случая. Переведите своё имя в биты — и абстракция станет конкретной.