Кодирование текстовой информации
Современные ЭВМ обрабатывают не только числовую, но и текстовую, другими словами – алфавитно-цифровую информацию, содержащую цифры, буквы, знаки препинания, математические и другие символы. Такой характер имеют экономическая, планово-производственная, учетная информация, а также тексты программ на алгоритмических языках и др. Для представления такой информации требуются слова переменной длины.
Совокупность всех символов, используемых в вычислительной системе, представляет собой ее алфавит. Применяются различные виды кодирования символов, использующие коды разной длины.
Деловая информация в среднем содержит почти вдвое больше цифр, чем букв. Поэтому наряду с общей системой кодирования алфавитно-цифровых символов (десятичные цифры, буквы и другие знаки) в ЭВМ сохраняют также отдельную систему кодирования для данных, состоящих только из десятичных цифр.
Наибольшее распространение получило представление алфавитно-цифровой информации с помощью 8-разрядных слогов, называемых байтами. С помощью байта можно кодировать 256 различных символов (ASCII-код). Компьютеры могут обрабатывать информацию, представляемую в числовой форме. Вводимые буквы кодируются определенными числами, а при выводе их для чтения (на экран, принтер и т.п.) по каждому числу (коду символа) строится изображение символа.
Основанная на 16-разрядном (двухбайтном) кодировании символов система получила название универсальной – UNICODE. Шестнадцать разрядов позволяют обеспечить уникальные коды для 65536 различных символов – этого поля достаточно для размещения в одной таблице символов большинства языков планеты.
Для представления алфавитно-цифровых символов в памяти ЭВМ и на носителях информации в больших ЭВМ и в некоторых других машинах используется двоичный код для обработки информации (ДКОИ), а в микропроцессорах, ПК и микро-ЭВМ – расширенный за счет букв русского алфавита код ASCII. В компьютерных сетях на территории России и в российском секторе Интернета широкое распространение получила кодировка КОИ-8 (код обмена информацией, восьмизначный). Другая кодировка символов русского языка Windows-1251 была введена компанией Microsoft, она используется на ряде локальных компьютеров, работающих в среде Windows.
Алфавитно-цифровая информация представляется словами переменной длины, содержащими нужное число байт-символов (обычно от 1 до 256 байт).
Для упрощения автоматизации обработки данных применяют весовой принцип кодирования символов. Двоичное число, соответствующее коду символа, называется его весом. При весовом кодировании веса кодов цифр последовательно возрастают, а веса кодов букв увеличиваются в алфавитном порядке. Вес кода буквы B на 1 больше веса кода буквы А и т.д.
Если необходимо расположить список фамилий в алфавитном порядке, то при весовом принципе кодирования эта операция может быть выполнена ЭВМ путем сравнения двоичных чисел, соответствующих кодовым изображениям фамилий.
Для экономии емкости памяти и для удобства выполнения арифметических операций над десятичными числами в машинах с байтовым представлением информации предусматриваются специальные форматы для десятичных чисел:
1)зонный ("распакованный")
2) уплотненный ("упакованный")
Десятичные цифры 0, 1, 2, ... , 9 представляются в двоично-десятичной форме – коде 8421, в котором десятичная цифра изображается соответствующим 4-разрядным двоичным числом. Не используемые при этом комбинации 4-разрядных кодов (1010 - 1111) служат для кодирования знаков и служебных символов.
Код 8421 удобен для выполнения машиной преобразований из десятичной системы в двоичную и обратно. Этот код аддитивен, т.е. сумма представлений двух цифр есть код их суммы. Однако использование этого кода связано с трудностями обнаружения переноса в следующий десятичный разряд и сложностью перехода к обратным и дополнительным кодам для десятичных чисел, облегчающим выполнение алгебраического сложения.
Для зонного формата в каждом байте содержатся только одна десятичная цифра и служебный знак (зона), при этом четыре правых разряда байта служат для представления десятичной цифры в двоично-десятичном коде, а четыре левых заняты специальным 4-разрядным кодом, называемым зоной.
Младший байт в этом формате состоит из кодов знака и младшей десятичной цифры числа.
В ДКОИ принято кодировать: плюс – 1100, минус – 1101 и зона – 1111.
Пример.
Число - 6.285 в зонном десятичном формате имеет вид
6 2 8 - 5
11110110 11110010 11111000 1101 0101
Информация при этом о месте расположения десятичной запятой (точки) фиксируется в самой программе задачи.
При кодировании десятичного числа без знака в левые четыре разряда младшего байта записывается код зоны.
В упакованном байте реализуется возможность размещения в одном байте двух десятичных цифр. Десятичное число всегда занимает целое число байтов. Код знака размещается в правых четырех разрядах младшего байта. Если левые четыре разряда самого левого (старшего) байта оказываются свободными, они заполняются нулями.
Пример.
Число - 6285 в упакованном десятичном формате имеет вид
0 6 2 8 5 -
0000 0110 0010 1000 0101 1101
байт байт байт
Упакованный формат используется при выполнении операций над десятичными цифрами. Результат получается также в этом формате. Числа, участвующие в операции, могут иметь неодинаковую длину. Они рассматриваются как целые числа, выровненные по младшим разрядам. Формат с зоной используется при операциях ввод-вывод десятичных данных.
В ЭВМ, использующих распакованный и упакованный форматы, имеются команды для преобразования десятичных чисел из зонного формата в упакованный и обратно.
Программист записывает данные в привычной форме. Перевод из этой формы во внутреннее представление осуществляется в процессе ввода данных. При выводе информации эти же служебные программы осуществляют обратный перевод.
Дата добавления: 2016-09-26; просмотров: 2737;