logo search
Алексеев информатика

3.3. Кодовая таблица

Кодовая таблица – это внутреннее (закодированное) представление в машине букв, цифр, символов и управляющих сигналов. Так, латинская буква А в кодовой таблице представлена десятичным числом 65D (внутри ЭВМ это число будет представлено двоичным числом 01000001В), латинская буква С – числом 67D, латинская буква М – 77D и т. д. Таким образом, слово «САМАРА», написанное заглавными латинскими буквами будет циркулировать внутри ЭВМ в виде цифр:

Если говорить точнее, то внутри ЭВМ данное слово циркулирует в виде двоичных чисел:

01000011В-01000001В-01001101В-01000001В-01010000В-01000001В.

Аналогично кодируются цифры (например, 1 – 49D, 2 – 59D) и символы (например, ! – 33D, + – 43D).

Наряду с алфавитно-цифровыми символами в кодовой таблице закодированы управляющие сигналы. Например, код 13D заставляет печатающую головку принтера вернуться к началу текущей строки, а код 10D перемещает бумагу, заправленную в принтер, на одну строку вперед.

Кодовая таблица может быть представлена не только с помощью десятичной СС, но и при помощи шестнадцатеричной СС. Еще раз обращаем внимание на тот факт, что внутри ЭВМ циркулируют сигналы, представленные в двоичной системе счисления, а в кодовой таблице для большего удобства чтения пользователем – в десятичной или шестнадцатеричной СС.

Каждая буква, цифра, знак препинания или управляющий сигнал кодируются восьмиразрядным двоичным числом. С помощью восьмиразрядного числа (однобайтового числа) можно представить (закодировать) 256 произвольных символов – букв, цифр и вообще графических образов.

Во всем мире в качестве стандарта принята кодовая таблица ASCII (American Standard Code for Information Interchange – Американский стандарт кодов для обмена информацией). Таблица ASCII регламентирует (строго определяет) ровно половину возможных символов (латинские буквы, арабские цифры, знаки препинания, управляющие сигналы). Для их кодировки используются коды от OD до 127D.

Вторая половина кодовой таблицы ASCII (с кодами от 128 до 255) не определена американским стандартом и предназначена для размещения символов национальных алфавитов других стран (в частности, кириллицы – русских букв), псевдографических символов, некоторых математических знаков. В разных странах, на различных моделях ЭВМ, в разных операционных системах могут использоваться и разные варианты второй половины кодовой таблицы (их называют расширениями ASCII). Например, таблица, которая используется в операционной системе MS-DOS, называется СР-866. Используя эту таблицу для кодировки слова «САМАРА», записанного русскими буквами, получим такие коды:

При работе в операционной системе Windows используется таблица кодов СР-1251, в которой кодировка латинских букв совпадает с кодировкой таблиц СР-866 и ASCII, a вторая половина таблицы имеет собственную раскладку (кодировку) символов. Поэтому слово «САМАРА», написанное заглавными русскими буквами, будет иметь внутри ЭВМ другое представление:

Таким образом, внешне одинаковое слово (например, «САМАРА») внутри ЭВМ может быть представлено различным образом. Естественно, это вызывает определенные неудобства. При работе в Интернет национальный текст порой становится нечитаемым. Наиболее вероятной причиной в этом случае является несовпадение кодировок второй половины кодовых таблиц. Заметим, что если для составления писем, отправляемых по электронной почте, используется первая половина кодовой таблицы (латиница), то проблемы с кодировкой не возникают.

Общим недостатком всех однобайтовых кодовых таблиц (в них для кодировки используются восьмиразрядные двоичные числа) является отсутствие в коде символа какой-либо информации, которая подсказывает машине, какая в данном случае используется кодовая таблица.

Сообществом фирм Unicode предложена в качестве стандарта другая система кодировки символов. В этой системе для представления (кодирования) одного символа используются два байта (16 битов), и это позволяет включить в код символа информацию о том, какому языку принадлежит символ и как его нужно воспроизводить на экране монитора или на принтере. Два байта позволяют закодировать 65 536 символов. Правда, объем информации, занимаемой одним и тем же текстом, увеличится вдвое. Зато тексты всегда будут «читаемыми» независимо от использованного национального языка и операционной системы.