Открыть сервисСервис

ASCII — американский стандартный код обмена информацией

ASCII (англ. American Standard Code for Information Interchange, произносится «аски́») — семибитный набор символов, разработанный в 1960-х годах в США и ставший фундаментом кодировки текстовых данных в информатике. Каждому символу в нём соответствует семизначный числовой код (от 0 до 127), что позволяет представлять текст в виде последовательности целых чисел. На протяжении десятилетий ASCII был основным стандартом текстового кодирования в компьютерах и телекоммуникациях, а его структура легла в основу более поздних кодировок, включая Unicode.

История создания

Разработка ASCII началась в 1960 году при участии комитета American Standards Association (ASA, ныне ANSI). Руководителем проекта стал Боб Бемер из IBM, в разработке также участвовали Гленн Спенс (Bell Labs) и Джоэл Спитцер. Основная задача заключалась в создании единого стандарта кодирования символов, пригодного для обмена информацией между компьютерами разных производителей — до этого каждая фирма использовала собственные, несовместимые кодовые таблицы.

В 1963 году был опубликован первый вариант стандарта ASA X3.4-1963. В нём, в частности, отсутствовали строчные латинские буквы — они были добавлены в редакции 1967 года. Окончательная, наиболее распространённая версия стандарта утверждена в 1967 году и подтверждена в 1986-м (ANSI X3.4-1986). ASCII разрабатывался на основе телетайпного кода Мюррея, применяемого в телетайпах и пишущих машинах.

Структура кодовой таблицы

Кодовая таблица ASCII содержит 128 символов с кодами от 0 до 127. Каждый код занимает 7 бит, однако в большинстве компьютерных систем он хранится в одном байте (8 бит), старший бит при этом обнуляется. Структура таблицы:

Диапазон кодовСодержание
0–31Управляющие символы (коды управления, перевод строки, возврат каретки, звонок, Backspace и др.)
32Пробел
33–47Пунктуация и знаки препинания (!, ", #, $, %, &, ', (, ), *, +, comma, -, ., /)
48–57Цифры 0–9
58–64Двоеточие, точка с запятой, знаки меньше/больше, равенство, вопросительный знак, «at» (@)
65–90Заглавные латинские буквы A–Z
91–96Квадратные скобки, обратный слэш, циркумфлекс, подчёркивание, обратный апостроф
97–122Строчные латинские буквы a–z
123–126Фигурные скобки, вертикальная черта, тильда
127Управляющий символ DEL (удаление)

Строчные и заглавные латинские буквы различаются ровно на 32 (например, код 'A' — 65, код 'a' — 97), что упрощало преобразование регистра в программном обеспечении.

Расширения и 8-битные кодировки

Поскольку 128 символов ASCII не покрывали потребности национальных языков, в 1980-х годах появились 8-битные расширения, добавлявшие к стандартному набору ещё 128 символов (коды 128–255). Наиболее известные из них:

  • ISO 8859-1 (Latin-1) — западноевропейские языки;
  • Windows-1251 — кириллица, использовавшаяся в Windows для русского языка;
  • KOI-8-R — кириллица, распространённая в Unix-системах и на первых русских сайтах;
  • CP866 — кириллица в DOS.

Все эти кодировки сохраняли полную совместимость с ASCII в диапазоне 0–127, что обеспечивало обратную совместимость с программами и протоколами, рассчитанными на 7-битный набор.

Роль в стандартах и протоколах

ASCII стал основой для многих фундаментальных стандартов информатики и телекоммуникаций. На нём построены:

  • EBCDIC — альтернативная кодовая таблица IBM, частично с ним совместимая;
  • Unicode — универсальный стандарт кодирования, в котором первые 128 кодовых позиций полностью совпадают с ASCII;
  • URL-кодирование — процентное кодирование в веб-адресах использует ASCII-символы;
  • MIME — стандарт передачи вложений в электронной почте;
  • SMTP, HTTP, FTP — базовые интернет-протоколы изначально предполагали 7-битный ASCII-текст.

Совместимость с ASCII заложена в UTF-8 — наиболее распространённую в XXI веке кодировку, в которой 128 символов ASCII кодируются теми же однобайтовыми значениями.

Ограничения

Главное ограничение ASCII — отсутствие в нём символов кириллицы, греческого алфавита, иероглифов, математических знаков и других национальных и специальных знаков. Для русского языка это означало необходимость использовать расширения (Windows-1251, KOI-8-R, MacCyrillic) или более поздние стандарты (UTF-8). Кроме того, 7-битный формат ограничивал набор управляющих символов, что вынуждало разрабатывать расширенные варианты (например, ASCII-код 27 — ESC — служит началом управляющих последовательностей ANSI.

Применение в настоящее время

Несмотря на вытеснение Unicode, ASCII остаётся актуальным в ряде областей: программирование (имена переменных, операторы, синтаксис языков), сетевые протоколы, конфигурационные файлы, ASCII-арт — графика, создаваемая текстовыми символами. Числовые коды ASCII часто используются при изучении основ программирования для работы со строками и символами.

Исторические факты

В 2003 году Боб Бемер продал оригинальный документ 1963 года с черновиком ASCII-таблицы на аукционе за 71 000 долларов. В 2019 году в США была отмечена 50-летняя годовщина ASCII (отсчёт ведётся от версии 1963 года).

Источники

  • American National Standard Code for Information Interchange (ANSI X3.4-1986). — ANSI, 1986.
  • Campbell-Kelly M., Aspray W. Computer: A History of the Information Machine. — Basic Books, 2004.
  • Стандарт ISO/IEC 646:1991 (международный эквивалент ASCII).
  • Бемер Р. The World of ASCII. — IBM, 2000.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru