7-битный набор символов
7-битный набор символов — это кодировка, в которой каждый символ представляется последовательностью из семи двоичных разрядов (битов), что позволяет закодировать до 128 различных знаков (2^7 = 128). Такие наборы исторически стали первыми стандартизированными системами цифрового представления текста, поскольку 7 бит было достаточно для передачи латинского алфавита, цифр, знаков препинания и управляющих символов, а также позволяло экономить память и пропускную способность каналов связи в ранних вычислительных системах.
История
Предпосылки появления
До появления 7-битных кодировок использовались различные 5-битные и 6-битные системы (например, код Бодо), которые не могли охватить весь алфавит. С развитием телеграфа и появлением первых электронных вычислительных машин в 1950-х годах возникла потребность в универсальном стандарте для обмена данными между разными устройствами.
Разработка ASCII
Наиболее известным и влиятельным 7-битным набором символов является ASCII (American Standard Code for Information Interchange). Его разработка началась в 1960 году под эгидой Американской ассоциации стандартов (ASA, ныне ANSI). Первая версия была опубликована в 1963 году, а окончательная редакция — в 1968 году. ASCII стал основой для большинства последующих кодировок.
Применение в СССР
В Советском Союзе для вычислительной техники использовались 7-битные кодировки, адаптированные под кириллицу. Наиболее известной является КОИ-7 (Код Обмена Информацией, 7-битный), разработанная в 1960-х годах. Она базировалась на ASCII, но заменяла латинские буквы в определённых позициях на кириллические, что позволяло передавать русский текст в 7-битных каналах связи. КОИ-7 использовалась в ЕС ЭВМ и СМ ЭВМ.
Структура 7-битного кода
Стандартный 7-битный набор символов (например, ASCII) делится на две основные группы:
- Управляющие символы (коды 0–31 и 127): Непечатаемые знаки, предназначенные для управления устройствами (терминалами, принтерами) и протоколами передачи данных. Примеры: NUL (0) — пустой символ, LF (10) — перевод строки, CR (13) — возврат каретки, DEL (127) — удаление.
- Печатаемые символы (коды 32–126): Включают:
- Пробел (32).
- Цифры (48–57): 0–9.
- Заглавные латинские буквы (65–90): A–Z.
- Строчные латинские буквы (97–122): a–z.
- Знаки препинания и специальные символы (33–47, 58–64, 91–96, 123–126): !, ?, ., ,, (, ), +, -, =, [, ], {, }, :, ;, ', ", @, #, $, %, ^, &, *, _, \, |, ~, <, >, /.
Классификация 7-битных наборов
Национальные варианты
Поскольку 7-битный набор вмещает только 128 символов, для поддержки национальных алфавитов (кириллица, греческий, арабский и т.д.) создавались локальные варианты. В них часть редко используемых латинских букв (например, [\]^_`{|}~) или знаков препинания заменялась на буквы национального алфавита. Примеры:
- КОИ-7 (СССР): Кириллический вариант, где латинские буквы в верхнем регистре заменялись на русские (например, A→А, B→Б, C→Ц, D→Д и т.д.).
- ISO 646: Международный стандарт, определявший 7-битные наборы для разных стран. Национальные варианты ISO 646 (например, для Великобритании, Германии, Франции) отличались заменой символа # на £, $ на ¤ и т.д.
Расширенные кодировки
Недостаток 7-битных наборов — невозможность одновременного использования нескольких алфавитов. Это привело к созданию 8-битных расширений (например, Windows-1251, KOI-8), которые добавили ещё 128 символов, но сохранили обратную совместимость с 7-битным ASCII в первой половине таблицы.
Применение
Телеграфия и телетайпы
7-битные коды (в частности, ASCII) стали стандартом для передачи данных в телеграфных сетях и телетайпах. Они заменили более старые 5-битные коды, обеспечив поддержку строчных букв и большего количества управляющих команд.
Ранние вычислительные системы
В 1960–1980-х годах 7-битные кодировки использовались в операционных системах (например, CP/M, ранние версии MS-DOS), текстовых редакторах, языках программирования (FORTRAN, COBOL, C) и протоколах передачи данных (например, SMTP для электронной почты изначально передавал только 7-битный текст).
Протоколы передачи данных
Многие сетевые протоколы (например, SMTP, NNTP, HTTP в ранних версиях) были рассчитаны на передачу только 7-битных символов. Для передачи 8-битных данных (например, изображений) использовались специальные кодировки, такие как Base64 и quoted-printable.
Ограничения
Основным недостатком 7-битных наборов является их ограниченная ёмкость. 128 символов недостаточно для одновременного представления латиницы, кириллицы, греческого алфавита, математических символов и иероглифов. Это привело к:
- Путанице с кодировками: При передаче текста между разными системами, использующими разные национальные варианты, возникали искажения (например, русский текст, набранный в КОИ-7, отображался как латинские буквы при чтении в ASCII).
- Необходимости перекодировки: Для корректного отображения текста требовалось знать, какая кодировка использовалась при его создании.
Значение и наследие
Несмотря на то, что в современных системах (начиная с 1990-х годов) повсеместно используются 8-битные кодировки (Windows-1251, KOI-8R) и Unicode (UTF-8), 7-битный ASCII остаётся фундаментальной основой. Он составляет первую половину таблицы всех современных кодировок, и его символы (латиница, цифры, знаки препинания) обрабатываются одинаково во всех системах. ASCII также является основой для многих протоколов интернета (SMTP, HTTP, FTP) и языков разметки (HTML, XML).
Интересные факты
- В оригинальном ASCII символ «@» (коммерческое at) имел код 64 и использовался в телеграфии для обозначения «по цене» (at the rate of).
- Управляющий символ BEL (код 7) при отправке на терминал вызывал звуковой сигнал (звонок).
- Символ DEL (код 127) изначально предназначался для физического удаления данных на перфоленте: пробивка всех семи дырок стирала любой символ.
- В 7-битной кодировке ASCII буква «A» имеет код 65 (1000001 в двоичной системе), а «a» — 97 (1100001). Разница между строчными и заглавными буквами составляет 32, что соответствует одному биту (шестому).
Источники
- American National Standards Institute. American Standard Code for Information Interchange (ASCII). ANSI X3.4-1968.
- Mackenzie, Charles E. Coded Character Sets: History and Development. Addison-Wesley, 1980.
- ГОСТ 13052-74. Код обмена информацией. 7-битный код. Государственный комитет СССР по стандартам, 1974.
- Документация по операционной системе ЕС ЭВМ (ОС ЕС). Система кодирования КОИ-7. 1970-е гг.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →