Перевод текста в двоичный код и обратно
Буква «A» в двоичном коде — 01000001, а русская «П» в UTF-8 занимает два байта: 11010000 10011111. Введите текст — получите байты; вставьте код — получите текст.
Инструмент
Как перевести текст в двоичный код
Каждый символ текста хранится в памяти как один или несколько байтов, а байт — это 8 бит, то есть восемь нулей и единиц. Конвертер кодирует текст в UTF-8, получает байты и записывает каждый в выбранной системе: двоичной (8 знаков), шестнадцатеричной (2 знака) или десятичной (число от 0 до 255). Байты разделяются пробелом, чтобы код можно было прочитать глазами.
символ → код Unicode → байты UTF-8 → каждый байт в 8 бит
«A» = U+0041 = 65 = 0100 0001 → 01000001
«П» = U+041F = D0 9F → 11010000 10011111
Разберём вручную слово «Hi». Буква «H» в таблице ASCII имеет код 72: 72 = 64 + 8, значит, единицы стоят в разрядах 64 и 8 — 01001000. Буква «i» — код 105 = 64 + 32 + 8 + 1 → 01101001. Итог: 01001000 01101001, 2 байта, 16 бит. В шестнадцатеричной записи те же байты — 48 69, в десятичной — 72 105.
С кириллицей на шаг больше: у «П» код Unicode 1055 (U+041F), а в UTF-8 такие коды занимают два байта по шаблону 110xxxxx 10xxxxxx. Биты числа 1055 — 100 0001 1111 — раскладываются по свободным позициям: 11010000 10011111, или D0 9F. Слово «Москва» из шести букв превращается в 12 байт: D0 9C D0 BE D1 81 D0 BA D0 B2 D0 B0.
Таблица ASCII: коды популярных символов
| Символ | Двоичный | Hex | Десятичный |
|---|---|---|---|
| Пробел | 00100000 | 20 | 32 |
| 0 | 00110000 | 30 | 48 |
| 9 | 00111001 | 39 | 57 |
| A | 01000001 | 41 | 65 |
| Z | 01011010 | 5A | 90 |
| a | 01100001 | 61 | 97 |
| z | 01111010 | 7A | 122 |
| @ | 01000000 | 40 | 64 |
| Перенос строки | 00001010 | 0A | 10 |
Заглавные и строчные латинские буквы отличаются одним битом — 32: A = 65, a = 97. Цифры идут подряд с 48, поэтому символ «5» — это 48 + 5 = 53. Кириллица в UTF-8 начинается с байта D0 или D1: заглавные А–Я — D0 90…D0 AF, строчные а–п — D0 B0…D0 BF, р–я — D1 80…D1 8F.
Сколько байт занимает символ в UTF-8
| Диапазон Unicode | Байт | Что попадает |
|---|---|---|
| U+0000–U+007F | 1 | Латиница, цифры, знаки ASCII |
| U+0080–U+07FF | 2 | Кириллица, греческий, арабский, иврит |
| U+0800–U+FFFF | 3 | Иероглифы, символ рубля ₽, тенге ₸, гривны ₴ |
| U+10000–U+10FFFF | 4 | Эмодзи, редкие письменности |
Из-за этого текст на русском весит почти вдвое больше латинского при том же числе букв: СМС на кириллице вмещает 70 знаков против 160 латинских по той же причине — экономные кодировки не покрывают русский алфавит. В базах данных и API это влияет на лимиты полей: столбец на 255 байт вмещает лишь 127 русских букв.
Где применяется двоичный код
Программисты используют двоичную и hex-запись при отладке сетевых пакетов, файлов и кодировок: «кракозябры» вроде «РџСЂРёРІРµС‚» — это байты UTF-8, прочитанные как Windows-1251, и по hex-дампу такую ошибку видно сразу. Школьники и студенты в России, Беларуси и Казахстане решают задачи по информатике на объём информации: сообщение из 40 символов в 8-битной кодировке занимает 320 бит, а в UTF-8 с кириллицей — уже 640.
Двоичный код встречается и в дизайне — надписи из нулей и единиц на футболках и в заставках, и в головоломках, где слово спрятано в байтах. Конвертер решает обе задачи: превращает фразу в код и читает код обратно, сообщая, если байты не складываются в корректный текст.
Вопросы и ответы
Почему русская буква занимает два байта, а латинская — один?
Так устроена кодировка UTF-8: символы с кодами 0–127 (латиница, цифры, знаки) записываются одним байтом, кириллица (коды 1024–1279) — двумя, иероглифы — тремя, эмодзи — четырьмя. Поэтому «Hi» — это 16 бит, а «Да» — 32 бита.
Как перевести двоичный код в текст вручную?
Разбейте последовательность на группы по 8 бит и переведите каждую в десятичное число: 01001000 = 64 + 8 = 72. Найдите код в таблице ASCII — 72 соответствует «H». Байты от 128 и выше принадлежат многобайтовым символам UTF-8, их нужно собирать по два–четыре.
Чем отличаются двоичная, шестнадцатеричная и десятичная запись?
Это одни и те же байты в разных системах счисления. Байт 01001000 в двоичной записи — это 48 в шестнадцатеричной и 72 в десятичной. Hex компактнее и принят в программировании и отладке, двоичная нагляднее для обучения, десятичная встречается в старых таблицах ASCII.
Почему код не переводится обратно в текст?
Чаще всего длина двоичной строки не делится на 8 или байты не образуют корректную последовательность UTF-8. Например, «Привет» в кодировке Windows-1251 — это CF F0 E8 E2 E5 F2, и в UTF-8 такие байты недопустимы. Проверьте, что число бит кратно 8, а текст был в UTF-8.
Что такое ASCII и почему там только 128 символов?
ASCII — американская таблица 1963 года на 7 бит: 33 управляющих кода и 95 печатных символов — латиница, цифры, знаки. Восьмой бит освобождал место для национальных алфавитов, так появились КОИ-8 и Windows-1251 для кириллицы. UTF-8 совместим с ASCII: первые 128 кодов совпадают.
Источники и методика
Обновлено: