Кодирование текстовой данных
Текстовые данные представляют собой совокупность алфавитных, цифровых и специальных символов, зафиксированных на некотором физическом носителе (бумага, магнитный диск, изображение на экране дисплея).
Нажатие клавиши на клавиатуре приводит к тому, что сигнал посылается в компьютер в виде двоичного числа, которое хранится в кодовой таблице. Кодовая таблица – это внутреннее представление символов в компьютере. Во всем мире в качестве стандарта принята таблица ASCII ( American Standard Code for Informational Interchange – Американский стандартный код информационного обмена).
Для хранения двоичного кода одного символа выделен 1байт=8 бит. Учитывая, что каждый бит принимает значение 1 или 0, количество возможный сочетаний единиц и нулей равно . Значит, с помощью 1 байта можно получить 256 разных двоичных кодовых комбинаций и отобразить с их помощью 256 различных символа. Эти коды и составляют таблицу ASCII. Для сокращения записей и удобства пользования этими кодами символов в таблице используют шестнадцатеричную систему счисления, состоящую из 16 символов – 10-ти цифр и 6-ти латинских букв: A, B, C, D, E, F. При кодировании символов сначала записывается цифра столбца, а затем строки, на пересечении которых находится данный символ.
Кодирование каждого символа 1-м байтом связано с расчетом энтропии системы символов (см. пример 6). При разработке системы кодирования символов учли, что необходимо закодировать 26 строчных букв латинского (английского) алфавита и 26 прописных букв, цифры от 0 до 9, знаки препинания, специальные символы, арифметические знаки. Это так называемые, международные, символы. Получается около 128 символов. Еще 128 кодов отводится для кодирования символов национального алфавита и некоторых дополнительных знаков. В русском языке это 33 строчных и 33 прописных буквы. Общее число символов, подлежащих кодированию больше и меньше . В предположении, что все символы встречаются с равной вероятностью, то энтропия системы будет 7 < H < 8. Поскольку для кодирования используется целое число бит, то 7 бит будет мало. Поэтому для кодирования каждого символа используется по 8 бит. Как было сказано выше, 8 бит позволяют закодировать символов. Это число дало название единице измерения объема данный «байт».
Пример 19
Латинская буква S в таблице ASCII представлена шестнадцатеричным кодом – 53. При нажатии на клавиатуре буквы S, в память компьютера записывается его эквивалент – двоичный код 01010011, который получается путем замены каждой шестнадцатеричной цифры на ее двоичный эквивалент.
В данном случае цифра 5 заменена кодом 0101, а цифра 3 – кодом 0011. При выводе буквы S на экран в компьютере происходит декодирование – по этому двоичному коду строится его изображение.
Обратите внимание! Любой символ в таблице ASCII кодируется с помощью 8-ми двоичных разрядов или 2-х шестнадцатеричных разрядов (1 разряд представлен 4-мя битами).
Таблица ( рис. 5 ) отображает кодировку символов в шестнадцатеричной системе счисления. Первые 32 символа являются управляющими и предназначены, в основном, для передачи команд управления. Они могут меняться в зависимости от программных и аппаратных средств. Вторая половина кодовой таблицы (от 128 до 255) не определена американским стандартом и предназначена для национальных символов, псевдографических и некоторых математических символов. В разных странах могут использоваться различные варианты второй половины кодовой таблицы для кодирования букв своего алфавита.
Обратите внимание!Цифры кодируются по стандарту ASCII в двух случаях – при вводе-выводе и, если они встречаются в тексте.
Для сравнения рассмотрим число 45 для двух вариантов кодирования.
При использовании в тексте это число потребует для своего представления 2 байта, т.к. каждая цифра будет представлена своим кодом в соответствии с таблицей ASCII (рис. 4). В шестнадцатеричной системе код будет 34 35, в двоичной системе – 00110100 00110101, что потребует 2 байта.
Рис. 5. Таблица кодов ASCII (фрагмент)