Что такое конвертер текста в двоичный код / ASCII?
Этот инструмент превращает любой введённый текст в его двоичное представление. Компьютеры хранят текст в виде чисел, используя кодировку символов — для латинских букв, цифр и знаков препинания такой кодировкой служит ASCII. Каждому символу соответствует числовой код, и здесь этот код записывается в виде 8-битной двоичной строки (восемь нулей и единиц). Конвертер также показывает десятичные коды ASCII и шестнадцатеричные значения — так вы сможете перепроверить результат в любой системе счисления.
Как пользоваться
Введите или вставьте текст в поле ввода и нажмите кнопку. В основном поле появится полная двоичная строка: для каждого символа — своя 8-битная группа, отделённая пробелом. В таблице ниже вы увидите соответствующие десятичные коды ASCII и шестнадцатеричные значения, а также количество символов и общее число битов. Пробелы и знаки препинания тоже считаются символами — например, пробел имеет код ASCII 32.
Как работает формула
Для каждого символа c мы берём его код (то же значение, что возвращает метод charCodeAt в JavaScript), переводим это целое число в двоичную систему (основание 2) и дополняем слева нулями до длины 8.
$$\text{binary} = \text{pad}_8\big(\text{ASCII}(c)\big)\ \text{for each char } c$$
$$c \rightarrow \text{pad}_8(\text{bin}(\text{charCode}(c)))$$
Например, буква A имеет код ASCII 65, что в двоичном виде равно 1000001, а после дополнения — 01000001. Общее число битов:
$$\text{bits} = 8 \times n_{chars}$$
Разбор примера
Переведём слово Hi. «H» — это ASCII 72 → двоичный код 01001000 → hex 48. «i» — это ASCII 105 → двоичный код 01101001 → hex 69. В итоге «Hi» превращается в 01001000 01101001, в десятичном виде 72 105, в шестнадцатеричном 48 69 — всего \(8 \times 2 = 16\) битов на 2 символа.
Частые вопросы
Работает ли он с нелатинскими символами (например, кириллицей)? Стандартная таблица ASCII охватывает коды от 0 до 127. Символы с кодом выше 127 — кириллица, буквы с диакритикой, эмодзи — используют свою кодовую точку Unicode, которая может выходить за пределы 8 битов и не укладываться в стандартный ASCII.
Почему именно 8 битов на символ? Байт состоит из 8 битов, а символ ASCII традиционно умещается в один байт, поэтому группировка по 8 битов является общепринятым представлением.
Можно ли преобразовать двоичный код обратно в текст? Этот инструмент переводит текст в двоичный код. Чтобы выполнить обратное преобразование, разбейте двоичную строку на группы по 8 битов и сопоставьте каждое значение с соответствующим символом ASCII.
Таблица ссылок символов ASCII
Стандартная кодировка ASCII назначает каждому символу число от 0 до 127. В этом преобразователе десятичный код каждого символа преобразуется в 8-битное двоичное значение (с дополнением нулями слева для заполнения 8 бит) и в двузначное шестнадцатеричное значение. В таблице ниже перечислены часто используемые печатные символы.
| Символ | Десятичное | 8-битный двоичный | Шестнадцатеричный |
|---|---|---|---|
| (пробел) | 32 | 00100000 | 20 |
| ! | 33 | 00100001 | 21 |
| 0 | 48 | 00110000 | 30 |
| 1 | 49 | 00110001 | 31 |
| 5 | 53 | 00110101 | 35 |
| 9 | 57 | 00111001 | 39 |
| : | 58 | 00111010 | 3A |
| ? | 63 | 00111111 | 3F |
| @ | 64 | 01000000 | 40 |
| A | 65 | 01000001 | 41 |
| B | 66 | 01000010 | 42 |
| M | 77 | 01001101 | 4D |
| Z | 90 | 01011010 | 5A |
| a | 97 | 01100001 | 61 |
| b | 98 | 01100010 | 62 |
| m | 109 | 01101101 | 6D |
| z | 122 | 01111010 | 7A |
Например, прописная буква A имеет десятичный код 65, который в двоичном виде является 1000001 и с дополнением до 8 бит становится 01000001. Как отдельный символ слово "Hi" кодируется как 01001000 01101001.
Объяснение ключевых терминов
- Бит
- Наименьшая единица цифровых данных, содержащая одно значение: либо 0, либо 1 (двоичная цифра).
- Байт
- Группа из 8 бит. Один байт может представлять 256 различных значений (\(2^8 = 256\)), что достаточно для хранения одного символа расширенной кодировки ASCII.
- ASCII
- Американский стандартный код обмена информацией — стандарт кодирования символов, который сопоставляет 128 символов (коды 0–127), включая буквы, цифры, знаки пунктуации и управляющие коды, с числами.
- Unicode
- Универсальный стандарт символов, который выходит далеко за пределы ASCII и охватывает практически все системы письма, символы и эмодзи. Первые 128 кодовых точек Unicode идентичны ASCII.
- Кодовая точка
- Числовое значение, назначенное символу в наборе символов. Для буквы "A" кодовая точка составляет 65 как в ASCII, так и в Unicode.
- Двоичная система
- Система счисления с основанием 2, использующая только цифры 0 и 1. Каждая позиция представляет степень двойки (1, 2, 4, 8, …).
- Десятичная система
- Система счисления с основанием 10, используемая в повседневном счёте, с цифрами 0–9 и позициями, представляющими степени десяти.
- Шестнадцатеричная система
- Система счисления с основанием 16, использующая цифры 0–9 и буквы A–F. Одна шестнадцатеричная цифра представляет ровно 4 бита, поэтому две шестнадцатеричные цифры представляют один байт.
- Дополнение / Дополнение слева
- Добавление ведущих нулей в начало двоичного значения таким образом, чтобы каждый символ занимал одинаковую ширину. Байты ASCII дополняются слева до 8 бит — например, код 65 (двоичное 1000001) становится 01000001.
Таблица преобразования двоичной, десятичной и шестнадцатеричной систем
Таблица ниже показывает, как одно и то же значение отображается в десятичной (основание 10), двоичной (основание 2) и шестнадцатеричной (основание 16) системах. Обратите внимание, как каждая степень двойки добавляет ещё одну двоичную цифру, и как ровно 4 двоичных бита отображаются на одну шестнадцатеричную цифру.
| Десятичное | Двоичное (8-бит) | Шестнадцатеричное |
|---|---|---|
| 0 | 00000000 | 00 |
| 1 | 00000001 | 01 |
| 2 | 00000010 | 02 |
| 3 | 00000011 | 03 |
| 4 | 00000100 | 04 |
| 5 | 00000101 | 05 |
| 6 | 00000110 | 06 |
| 7 | 00000111 | 07 |
| 8 | 00001000 | 08 |
| 9 | 00001001 | 09 |
| 10 | 00001010 | 0A |
| 11 | 00001011 | 0B |
| 12 | 00001100 | 0C |
| 13 | 00001101 | 0D |
| 14 | 00001110 | 0E |
| 15 | 00001111 | 0F |
| 16 | 00010000 | 10 |
| 32 | 00100000 | 20 |
| 64 | 01000000 | 40 |
| 128 | 10000000 | 80 |
| 255 | 11111111 | FF |
В качестве проверки: десятичное число 255 — это наибольшее значение, которое может содержать один байт; его шестнадцатеричная форма — FF, а его двоичная форма — все восемь битов, установленные в 1. Аналогично, десятичное 64 преобразуется в двоичное 1000000, которое дополняется до 01000000.