Таблица ASCII-кодов

Полная таблица ASCII-кодов 0–127: десятичные, шестнадцатеричные и восьмеричные значения, поиск по символу или коду, связь ASCII с UTF-8 и готовые примеры.

Всё работает в вашем браузере — данные не отправляются на сервер.

Зачем нужна таблица ASCII-кодов

Таблица ASCII — это справочник из 128 кодов, где каждому числу от 0 до 127 сопоставлен символ: латинские буквы, цифры, знаки препинания и 33 управляющие команды вроде перевода строки. Стандарт появился в 1963 году и до сих пор лежит в основе всего, что печатается на экране. Он выручает, когда в логе мелькает непонятный символ и нужно понять, что скрывается за кодом 10 или 27, когда в коде на C пишется escape-последовательность и надо вспомнить, какой букве какой номер соответствует, или когда задача по программированию требует разобрать строку по кодам. Поиск здесь работает в обе стороны: по символу вы находите его код, по коду — символ.

Что умеет справочник

  • Показывает все 128 кодов сразу в четырёх системах: DEC, HEX, OCT и BIN, с группировкой на управляющие и печатные
  • Ищет по символу, десятичному коду, шестнадцатеричному 0x41, восьмеричному 101 и по названию вроде LF или ESC
  • Клик по любой строке таблицы кладёт десятичный код в буфер обмена
  • Переводит введённый символ в DEC, HEX, OCT и BIN, работает и с символами за пределами ASCII
  • Отдельно объясняет, как коды ASCII превращаются в байты UTF-8

Как найти нужный код

  1. Введите код или символ в поле поиска — таблица отфильтруется сразу
  2. Код можно писать в любом виде: 65, 0x41, восьмеричное 0101 или просто буквой A
  3. Кликните по строке с результатом, чтобы скопировать десятичный код
  4. Для произвольного символа используйте верхнее поле — оно покажет все представления, включая двоичное

Как устроена таблица

ASCII кодирует символы семью битами: значений 2 в седьмой степени, то есть 128, хватает на весь латинский алфавит в двух регистрах, десять цифр, знаки препинания и служебные команды. Диапазон 0–31 и код 127 отданы управляющим символам — у них нет начертания, есть только сокращённое имя вроде NUL, LF или ESC. Диапазон 32–126 занимает печатная часть, от пробела с кодом 32 до тильды с кодом 126. В таблице каждый код показан в десятичной, шестнадцатеричной, восьмеричной и двоичной записи: шестнадцатеричная удобна тем, что один байт записывается ровно двумя цифрами, восьмеричная живёт в синтаксисе C, а двоичная показывает, за что отвечает каждый бит.

Коды ASCII, которые встречаются чаще всего

Код DEC и HEXСимволЧто означает
9, 0x09HTгоризонтальная табуляция, \t в коде
10, 0x0ALFперевод строки, \n в большинстве систем
13, 0x0DCRвозврат каретки, \r; в Windows строки завершает CR+LF
27, 0x1BESCначало escape-последовательности терминала
32, 0x20пробелсамый частый печатный символ текста
48–57, 0x30–0x390–9цифры идут подряд, из кода вычитается 48
65–90, 0x41–0x5AA–Zзаглавные латинские буквы подряд
97–122, 0x61–0x7Aa–zстрочные: код заглавной плюс 32
34, 0x22"двойная кавычка, в JSON ограничивает строки
92, 0x5C\обратная косая черта, начало escape-последовательности
126, 0x7E~последний печатный символ таблицы
127, 0x7FDELудаление, единственный управляющий после 31

Диапазоны 48–57, 65–90 и 97–122 показаны границами: внутри каждого коды идут без пропусков, поэтому между A и C всегда ровно два шага.

Где таблица ASCII выручает на практике

Первая масса задач связана с логами и протоколами. В HTTP каждая строка заголовка заканчивается парой байтов 13 и 10, и пока это знаешь, обмен между клиентом и сервером выглядит как набор случайных символов. В телеметрии и обмене с устройствами на микроконтроллерах данные часто приходят сырыми байтами: без таблицы не разберёшься, что 0x0A внутри потока — это разделитель, а 0x1B — начало команды терминала. Даже разбор CSV с непонятными разделителями упирается в вопрос «что это за символ с кодом 9», и ответ занимает один поиск.

Вторая масса задач живёт в программировании. Escape-последовательности в C, Python и JavaScript — это коды таблицы: \n, \t, \r, \0. Сравнение символов по кодам используется для сортировки: цифры идут раньше заглавных букв, заглавные раньше строчных, и это не прихоть, а прямое следствие порядка кодов. Разбор строк посимвольно, валидация ввода, поиск непечатаемых символов в данных — всё это опирается на диапазоны 0–31 и 32–126. Учебные задания по информатике, где нужно перевести имя в коды и обратно, решаются той же таблицей, а фоновая теория хорошо ложится рядом с материалом про двоичный код.

  • Разбор логов: что за байт 0x0A или 0x1B в потоке данных
  • Протоколы: CR+LF в HTTP, разделители в последовательных портах
  • Код: escape-последовательности \n, \t, \r и завершающий NUL строк в C
  • Сортировка: почему цифры идут раньше букв и заглавные раньше строчных
  • Учебные задачи: перевести слово в коды и собрать обратно
  • Отладка: поиск непечатаемых символов, ломающих сравнение строк

Типичные ошибки при работе с кодами

Самая частая ошибка — смешать системы счисления. Числа 65, 0x41 и 101 задают один и тот же код, но читаются по-разному: 65 — это десятичная запись, 41 после 0x — шестнадцатеричная, 101 — восьмеричная. Человек, увидевший в логе байт 0x41, иногда ищет в таблице строку 41 и находит не ту букву: код 41 в десятичной — это закрывающая скобка. Правило простое: сначала определите систему, потом ищите. Hex всегда узнаваем по паре букв A–F в записи или по приставке 0x.

Вторая ошибка — обобщать таблицу на кириллицу. Русская заглавная А выглядит как латинская A, но её код Unicode U+0410, и в UTF-8 она занимает два байта D0 90. Сравнение строк, где одна буква набрана в латинской раскладке, а другая в русской, не совпадёт именно из-за этого, хотя на экране текст выглядит одинаково. Туда же примыкает путаница «символ равен байту»: в UTF-8 это верно только для ASCII-диапазона, а эмодзи может занять четыре байта. Проверить, что именно лежит в файле, помогает определитель кодировки.

  • 65, 0x41 и 101 — один код в трёх системах, не три разных кода
  • Кириллица вне диапазона 0–127: русская А это U+0410, а не 65
  • В UTF-8 символ старше 127 занимает два и более байтов
  • Пробел имеет код 32, а не 0, и он тоже печатный символ
  • CR и LF — два разных кода, в Windows их пара, в Unix только LF
  • DEL это 127, а не 8: код 8 занимает возврат на символ BS

Разбор примера: путь символа A от кода к байту

Возьмём заглавную латинскую A и проследим её по таблице. Десятичный код — 65, шестнадцатеричный — 0x41, восьмеричный — 101, двоичный — 01000001. Все четыре записи описывают одно и то же содержимое байта. В двоичной включены два бита: с весом 64 и с весом 1, а 64 плюс 1 как раз и даёт 65. Старший бит нулевой — значит, код попадает в первые 128 значений и символ точно есть в таблице. Разбор по битам же объясняет перевод регистра: строчная a записывается как 01100001, отличаясь от заглавной единственным битом с весом 32, поэтому 65 плюс 32 равно 97.

Тот же приём работает для любого символа таблицы. Строчная a отличается от заглавной ровно одним битом: 01100001 против 01000001. Цифра 0 — 00110000, поэтому все цифры подряд занимают 48–57. Пробел — 00100000, единственный включённый бит имеет вес 32, и код пробела действительно 32. Ниже — сводка для символов, к которым возвращаются чаще всего.

Коды частых символов во всех системах счисления

СимволDECHEX и OCT
A650x41, октал 101
a970x61, октал 141
0480x30, октал 060
пробел320x20, октал 040
LF (\n)100x0A, октал 012
CR (\r)130x0D, октал 015
ESC270x1B, октал 033
DEL1270x7F, октал 177

ASCII использует семь бит из восьми, поэтому старший бит байта в чистом ASCII всегда нулевой; восьмой бит исторически отдавали под контроль чётности.

ASCII в ряду других способов записи данных

Таблица кодов — это мост между текстом и числами. Дальше числа удобно переводить между системами: 0x41 превращается в 65 и в 01000001, и каждый шаг делает конвертер систем счисления. Для длинных последовательностей байтов вместо таблицы берут двоичный переводчик — он покажет и посимвольный разбор строки в нулях и единицах, о чём подробнее написано в разборе двоичного кода. Если же байты нужно передавать в текстовом виде, их упаковывают в Base64 — там на каждые три байта приходится четыре символа, и устроено это описано в материале про Base64 простыми словами.

Полезно держать в голове и границы применимости. ASCII описывает только латиницу с цифрами и знаками: для остальных языков нужны другие коды Unicode, для байтов с любыми значениями — hex-дампы, для файлов неизвестного происхождения — сначала определение кодировки. Но поскольку UTF-8 бережно сохранил все 128 кодов как есть, таблица остаётся рабочим инструментом, а не музейным экспонатом: каждый байт со значением до 127 вы расшифруете по ней так же уверенно, как и в 1963 году.

  • Коды ASCII — это первые 128 кодпоинтов Unicode, расхождений нет
  • HEX-дамп файла читается парами цифр: каждая пара — один байт
  • Для чисел между системами счисления есть отдельный конвертер
  • Base64 — это не кодировка символов, а упаковка байтов в текст
  • Кракозябры в тексте чаще всего означают нешифрованную перекодировку, а не поломку данных

Частые вопросы

Что такое ASCII и сколько в нём символов

ASCII расшифровывается как American Standard Code for Information Interchange — американский стандартный код для обмена информацией. В стандарте 128 кодов от 0 до 127, потому что каждый символ описан семью битами. Из них 33 кода отданы управляющим командам, которые что-то делают, а не печатаются: перевод строки, звуковой сигнал, возврат каретки. Ещё 95 кодов занимают печатные символы: буквы латиницы обоих регистров, цифры и знаки. Первая версия стандарта вышла в 1963 году, современная редакция закреплена как ANSI X3.4 и параллельно описана в международном стандарте ISO/IEC 646.

Чем управляющие символы отличаются от печатных

Печатные символы 32–126 имеют видимое начертание: буква A, знак вопроса, пробел. Управляющие коды 0–31 и 127 ничего не рисуют — они командуют устройством. Код 10 двигает печатающую головку на строку вниз (LF, перевод строки), код 13 возвращает её в начало строки (CR), код 7 звонит в колокольчик (BEL). DEL с кодом 127 стоит особняком: исторически он получался перфорацией всех семи дырок в ленте, то есть полным обнулением байта. В таблице управляющие строки помечены сокращением — по нему их и удобно искать.

Почему A — это 65, а a — это 97

Заглавные латинские буквы заняли диапазон 65–90, строчные 97–122, и между соответствующей парой всегда разница ровно 32: 65 плюс 32 равно 97, 90 плюс 32 равно 122. В двоичной записи 32 — это шестой бит, поэтому перевод регистра сводится к переключению одного бита, и в старых терминалах это делалось аппаратно. Цифры 0–9 получили диапазон 48–57: из кода цифры вычитается 48, и получается её значение, поэтому старый трюк char c = '7' - '0' даёт число 7. Эти три диапазона стоит просто запомнить — они покрывают большинство повседневных задач.

Как связаны ASCII и UTF-8

Первые 128 кодпоинтов Unicode — это в точности ASCII: буква A одновременно имеет код ASCII 65 и код Unicode U+0041. Кодировка UTF-8 построена так, что каждый кодпоинт из этого диапазона записывается одним байтом с тем же значением, поэтому любой чистый ASCII-текст уже является корректным UTF-8 без перекодирования. Символы с кодами старше 127 кодируются двумя и более байтами: русская заглавная А имеет код U+0410 и в UTF-8 превращается в пару байтов D0 90. Отсюда практическое правило: байт со значением до 127 в UTF-8 гарантированно означает тот же символ, что и в таблице ASCII.

Что означают сокращения NUL, LF, CR, ESC

Это имена управляющих кодов. NUL (0) — пустой байт, им в языке C завершаются строки. LF (10) — перевод строки, он же \n в коде. CR (13) — возврат каретки, \r; пара CR+LF завершает строки в Windows и в протоколе HTTP. HT (9) — табуляция, \t. ESC (27) открывает escape-последовательности терминала: цвет текста, позиция курсора. BS (8) стирает символ слева. Полный список из 33 имён виден прямо в таблице — кликните по строке, и код окажется в буфере обмена.

Как перевести код из HEX в символ

Шестнадцатеричная запись — просто другой способ написать то же число: 0x41 — это 65, а за кодом 65 в таблице стоит латинская заглавная A. Один байт всегда занимает две hex-цифры, поэтому коды удобно читать по два знака: 0x0A — перевод строки, 0x20 — пробел, 0x7F — DEL. Для перевода в обратную сторону достаточно взглянуть на таблицу или посчитать: первая hex-цифра умножается на 16, вторая прибавляется как есть. Если нужен перевод между системами счисления в общем виде, удобнее открыть конвертер систем счисления — он работает с числами любой длины.

Зачем в таблице восьмеричный код

Восьмеричная запись досталась по наследству от старых систем: в языке C символ можно записать как '\101' и получить ту же букву A, потому что 101 в восьмеричной равно 65 в десятичной. До сих пор восьмеричные коды встречаются в escape-последовательностях, в правах доступа Unix (chmod 644 — это три восьмеричные цифры) и в выводе утилит вроде od и hexdump. Если вы разбираете такой вывод, таблица позволяет не пересчитывать значения в голове: введите восьмеричный код с ведущим нулём, например 0101, и таблица покажет символ. Для прав доступа отдельно есть калькулятор chmod.

В каких случаях таблица ASCII не поможет

Как только текст перестаёт быть латиницей с цифрами. Кириллица, «ё», тире, кавычки-ёлочки и эмодзи лежат за пределами диапазона 0–127, у них свои коды Unicode, и поиск по таблице вернёт для них пустоту. Вторая ловушка — непонятная кодировка файла: если вместо текста видны кракозябры, сначала стоит выяснить, в какой кодировке файл, например через определитель кодировки, и только потом смотреть коды. И ещё: для красивых баннеров из символов таблица тоже не нужна — там работает генератор ASCII-арта.

Полезные статьи

Похожие инструменты