Developer 19 Jun 2026 7 мин чтения

Кодировка ASCII: Текст, Десятичные, Hex, Двоичные и Восьмеричные числа

ASCII сопоставляет каждый печатный символ числу от 0 до 127. Понимание этих чисел в десятичной, шестнадцатеричной, двоичной и восьмеричной системах — навык, который разработчик использует чаще, чем ожидает.

ASCII Encoding Guide - Text to Decimal Hex Binary Octal

Что такое ASCII?

ASCII расшифровывается как American Standard Code for Information Interchange (Американский стандартный код обмена информацией). Опубликован в 1963 году; определяет соответствие 128 символов целым числам от 0 до 127. Эти 128 символов включают английский алфавит (заглавные и строчные буквы), цифры 0–9, знаки пунктуации и 33 управляющих символа: перевод строки, табуляция, возврат каретки и другие.

Кириллица не входит в стандартный диапазон ASCII 0–127. Именно поэтому в истории русскоязычных компьютеров сложилась целая экосистема несовместимых кодировок: KOI8-R (стандарт де-факто в Unix-среде с 1990-х), CP866 (MS-DOS), Windows-1251. При обмене файлами между системами с разными кодировками получалась знаменитая "кракозябра". UTF-8 окончательно решил эту проблему в 2000-х, сохранив полную обратную совместимость с ASCII.

Почему разработчики до сих пор используют ASCII

  • Чтение бинарных файлов: В hex-редакторе правая панель показывает ASCII-интерпретацию каждого байта. Знание того, что 0x48 0x54 0x54 0x50 — это "HTTP", даёт мгновенную ориентацию.
  • Отладка сетевых протоколов: Сырой TCP и HTTP-трафик — это ASCII-текст. Дамп пакетов становится читаемым, когда знаешь таблицу.
  • URL-кодирование: Пробел — ASCII 32 (0x20), поэтому в URL он превращается в %20. Знак процента следует за hex-значением ASCII-кода.
  • Управляющие последовательности: \n — ASCII 10, \t — ASCII 9, \r — ASCII 13. Когда лог-файл выглядит сломанным, чаще всего виноват один из них.
  • Унаследованные системы: Мейнфреймы, встроенное ПО и последовательные протоколы спроектированы вокруг ASCII.

Четыре системы счисления на одном примере

Буква A — лучший пример, потому что её значения легко запомнить во всех четырёх системах.

СистемаЗначение для "A"Пояснение
Десятичная65Основание 10, привычная система счёта
Шестнадцатеричная0x41Основание 16; 4×16 + 1 = 65
Двоичная01000001Основание 2; реальные биты в памяти
Восьмеричная101Основание 8; 1×64 + 0×8 + 1 = 65

Строчная a — десятичное 97 (0x61). Разница между заглавной и строчной буквой ровно 32 — то же значение, что у пробела. Это не случайность: намеренное решение, позволяющее менять регистр одним изменением бита.

Практические примеры

URL-кодирование

Когда браузер кодирует URL, он берёт ASCII-значение каждого небезопасного символа и записывает его как знак процента с двумя hex-цифрами. Пробел (ASCII 32 = 0x20) становится %20. Используйте Кодировщик/Декодировщик URL для мгновенного кодирования и декодирования URL.

Управляющие последовательности

  • \n — ASCII 10, перевод строки
  • \r — ASCII 13, возврат каретки (конец строки в Windows: \r\n)
  • \t — ASCII 9, горизонтальная табуляция
  • \0 — ASCII 0, нулевой символ (терминатор строки в C)
  • \x41 — hex-эскейп; ASCII 65 = "A"

Чтение бинарных файлов

PNG-файлы начинаются с байтов 89 50 4E 47 в hex; средние байты (50 4E 47) — ASCII для "PNG". ZIP-файлы начинаются с 50 4B: "PK" (инициалы Фила Каца, автора формата). Эти сигнатуры позволяют определять тип файла без опоры на расширение.

Расширенный ASCII и Unicode

Стандартный ASCII охватывает 128 символов — достаточно для английского, но не для других языков. Различные схемы "расширенного ASCII" использовали 8-й бит для добавления ещё 128 символов, но единого стандарта не было. KOI8-R, CP866 и Windows-1251 использовали один и тот же диапазон байтов для разных символов кириллицы — отсюда и бесконечные проблемы при обмене файлами между Windows и Linux в 1990-х и 2000-х.

Unicode решил эту проблему, назначив уникальный номер каждому символу всех систем письма. UTF-8 обратно совместим с ASCII: первые 128 кодовых точек Unicode идентичны ASCII. Сегодня UTF-8 — стандарт де-факто для веба и Linux-систем.

Связанные инструменты

Конвертер двоичного в текст переводит сырые двоичные строки в читаемый текст. Для конвертации между системами счисления Конвертер систем счисления работает с десятичной, шестнадцатеричной, двоичной и восьмеричной.

Часто задаваемые вопросы

Какое ASCII-значение у пробела?

Пробел — ASCII 32 (десятичное), 0x20 (hex), 00100000 (двоичное). Это наименьший печатный символ ASCII; всё ниже 32 — управляющие символы.

Почему кириллица не входит в ASCII?

ASCII 0–127 разрабатывался исключительно для английского алфавита. Кириллица была добавлена в расширенных кодировках (KOI8-R, CP866, Windows-1251) и окончательно стандартизирована в Unicode.

В чём разница между ASCII и Unicode?

ASCII определяет 128 символов; Unicode — свыше 140 000. Первые 128 кодовых точек Unicode идентичны ASCII, поэтому ASCII-текст, закодированный в UTF-8, побайтно совпадает с обычным ASCII.

Как перевести текст в ASCII-коды программно?

В большинстве языков это одна операция: ord("A") в Python, "A".charCodeAt(0) в JavaScript, (int)'A' в C. Обратно: chr(65) в Python, String.fromCharCode(65) в JavaScript, (char)65 в C.

Конвертируйте любой текст в ASCII прямо сейчас

Вставьте любой текст и сразу получите десятичные, hex, двоичные и восьмеричные значения каждого символа.