ЛЕКЦИЯ 6

_2Расширение таблицы ASCII

Стандарт ASCII имеет лишь 128 символов с кодами от 0 до 127. На-

бор символов IBM PC вдвое больше. Коды обычно называют "

расширенными " кодами ASCII, хотя строго говоря, кодами ASCII являют-

ся только первые 127 кодов.

Первая половина кодов символов ПК имеет официальный статус и ши-

роко используется многими типами ЭВМ и другим электронным оборудовани-

ем. Другое дело - расширенные коды ASCII. Нет универсальной договорен-

ности относительно значений этих кодов, которые были разработаны спе-

циально для ПК.

Расширение таблицы с десятичными кодами от 128 до 255 может быть

различным в различных моделях ПК.

Для кодирования каждого символа в этой части таблицы необходимы

уже 8 битов. Здесь размещают символы национальных алфавитов, символы

псевдографики, а также математические и другие символы.

Находящиеся в этой части таблицы символы можно разделить на три

группы: неанглийские, псевдографические, научные.

Неанглийские символы (коды 128-175) включают все необходимые зна-

ки, позволяющие приспособить ПК для всех основных европейских языков,

включая буквы ( коды 128-154 и , знак цента(155), фунта стер-

лингов (156) и др.

Псевдографические символы ( 176-223) предназначены для изображе-

ния простых рисунков с помощью набора символов.

Некоторые из них используются для изображения заштрихованных об-

ластей с различной плотностью.

Очень широко используемые символы псевдографики (коды 1

позволяют рисовать точные прямоугольные фигуры на экране дисплея.

НЕ нашли? Не то? Что вы ищете?

Графические символы с кодами 220-223 могут применяться для пост-

роения гистограмм. Научные символы 224-254 включают буквы греческого

алфавита, различные математические символы, символ бесконечности (

236), два кода (244 и 245 ) для изображения интеграла, есть символы

возведения в квадрат и извлечение квадратного корня.

В кодировке IBM отсутствуют символы кириллицы, поэтому были соз-

даны различные модификации кодов IBM, содержащие символы кириллицы.

Наиболее распространены следующие кодировки кириллицы:

1) " Основная " кодировка ГОСТа - один из вариантов расширения

ASCII таблицы с русскими буквами, ( буквы А-Я имеют коды ,

буквы а-я - коды Символы псевдографики смещены, поэтому

возникает расхождение с принятой кодировкой этих символов в IBM -

совместимых ПК

2) Альтернативная кодировка ГОСТа - другой вариант расширения AS-

CII таблицы с русскими буквами. Здесь символы псевдографики расположе-

ны в тех же кодовых позициях, что и в стандартной таблицы для IBM PC.

При этом обеспечивается возможность использования зарубежных коммер-

ческих программ без настройки на новую кодировку символов псевдографи-

ки. Символы кириллицы расположены на тех позициях, где в кодировке IBM

расположены относительно редко используемые символы национальных алфа-

витов и греческие буквы ( буквы А - Я имеют коды 128-159, буквы а - п

- коды 160-175, р - я коды 224-239.

3) Модифицированная альтернативная кодировка ГОСТа совпадает с

альтернативной кодировкой ГОСТа во всех позициях кроме или

, в которых применяется кодировка символов IBM для матема-

тических и специальных символов.

4) Восьмибитный код КОИ-8. Здесь символы кириллицы А-Я имеют коды

224-254, а-я 192-223. Причем буквы расположены в перетасованном поряд-

ке. Эта кодировка имеет теже недостатки, что и основная кодировка ГОС-

Та, кроме того в ней затруднена сортировка русских текстов и отсутс-

твуе символ " Ъ" ( прописной твердый знак). Латинские буквы и осталь-

ные символы КОИ-8 и КОИ-7 совпадают.

_2КОД EBCDIC.

Двоично-десятичный код обмена информацией (_2EBCDIC_0 )является рас-

ширением более раннего кода BCD и использует для представления симво-

лов 8 разрядов. Этот код допускает представление 256 различных симво-

лов, хотя в настоящее время применяются не все возможные комбинации.

Код _2EBCDIC_0 используется в основном для передачи в байт-ориентированных

компьютерах. Если в компьютерах для внутреннего представления исполь-

зуется именно это код, то нет необходимости преобразовывать его для

передачи данных. Существует несколько поднаборов кода _2EBCDIC_0, сокра-

щенных и предназначенных для различных устройств.

_2Преобразование кодов

При передачи данных часто возникает проблема преобразования ко-

дов. Предположим, что большая ЭВМ, работающая с набором символов кода

EBCDIC, должна передавать и принимать информацию от терминала или ПК,

оперирующего с кодами ASCII. ПК или терминал передают символы, закоди-

рованные в соответствии с ASCII кодом. При получении этого символа

большая ЭВМ должна преобразовать сбита информации символа в формате

ASCII в соответствующий символ кода EBCDIC. В обратном случае, когда

информация должна быть передана в ПК или терминал, то она должна быть

преобразована из формата EBCDIC в формат ASCII, так чтобы ПК смог де-

шифрировать и понять получаемые данные. Имеется много способов для ре-

ализации такого преобразования : установка платы эмулятора в системный

блок ПК или конвертора протокола между ПК и большой ЭВМ.

При анализе представления цифр в кодах ASCII и EBCDIC, видно что

каждая цифра в коде EBCDIC ровно на десятичное число 192 больше экви-

валента этой цифры в коде ASCII. В этом случае может показаться, что

преобразование кодов является простой процедурой сложения или вычита-

ния фиксированной константы, однако необходимо отметить, что для дру-

гих символов кодированные значения для символов EBCDIC и ASCII разли-

чаются на разные числа. Вследствие этого преобразование кодов обычно

выполняется при помощи таблицы перекодировки с двумя буферными облас-

тями, каждая из которых используется для преобразования в одном нап-

равлении. В этом случае первая буферная область может содержать набор

ASCII символов в шестнадцатиричном виде, а эквивалентные шестнадцати-

ричные значения кода EBCDIC располагаются во втором поле буферной об-

ласти. При получении ASCII символа осуществляется поиск в первом поле

буферной области, а затем для осуществления преобразования кодов из

второго поля извлекается эквивалентное шестнадцатиричное значение кода

EBCDIC.

_2N 7 Представление и структуры хранения логической информации.

Логический тип данных ( BOOLEAN) представляет одно из двух истин-

ных логических значений (истина/ложь). Эти значения обозначаются пос-

редством стандартных идентификаторов

true ( истина)

false ( ложь)

Над значениями булевского типа допускаются операции сравнения,

причем считается, что false<true. Кроме того, имеются четыре стандарт-

ные логические операции, обозначаемые служебными словами:

and - логическое умножение

or - логическое сложение

xor - сложение по модулю 2(исключающее или)

not - логическое отрицание

Для запоминания логического значения достаточно одного бита. Од-

нако с целью убыстрения доступа к логическому значению его представле-

ние в памяти может быть избыточным.

В Турбо Паскале 7.0 добавлено еще три логических типа ByteBool (

размер 1 байт), WordBool ( размер - 2 байта) и LongBool ( размер 4

байта). Они введены для унификации с другими языками программирования

и со средой Windows. Отличие их от стандартного типа Boolean заключа-

ется в фактической величине параметра этого типа, соответствующей зна-

FALSE соответствует число, записанное в соответствующее количество

байтов. Значению же TRUE для типа BOOLEAN соответствует число 1, запи-

санное в его байт, а для других типов значению TRUE соответствует лю-

бое число, отличное от нуля.

_2N7 Данные типа указатель

Указательный тип (тип POINTER ) представляет множество указате-

лей, или адресов, данных. Данное типа POINTER указывает на некоторое

другое данное или группу данных произвольного типа. Присваивая указа-

телю то или иное допустимое значение, можно обеспечить доступ к желае-

мым данным через этот указатель. В множестве значений типа POINTER

имеется специальное значение, присваивание которого свидетельствует

о том, что соответствующий указатель никуда неуказывает, т. е. является

нулевым, или пустым указателем. В Паскале существует специальная конс-

танта NIL