ЛЕКЦИЯ 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


