Приоритет операций убывает в указанном порядке, т.е. наивысшим приоритетом обладают унарные операции, низшим - операции отношения. Правила использования операций с операндами различного типа приводятся в табл. 3.7.
Таблица 3.7.Правила использования операций с операндами различного типа
Операция
Действие
Тип операндов
Тип результата
not
Отрицание
Логический
Логический
not
To же
Любой целый
Тип операнда
@
Адрес
Любой
Указатель
*
Умножение
Любой целый
Наименьший целый
*
Тоже
Любой вещественный
Extended
*
Пересечение множеств
Множественный
Множественный
/
Деление
Любой вещественный
Extended
div
Целочисленное деление
Любой целый
Наименьший целый
mod
Остаток от деления
То же
То же
and
Логическое И
Логический
Логический
and
То же
Любой целый
Наименьший целый
shl
Левый сдвиг
То же
То же
shr
Правый сдвиг
То же
То же
+
Сложение
То же
То же
+
Тоже
Любой вещественный
Extended
+
Объединение множеств
Множественный
Множественный
+
Сцепление строк
Строковый
Строковый
-
Вычитание
Любой целый
Наименьший целый
-
Тоже
Любой вещественный
Extended
or
Логическое или
Логический
Логический
or
Тоже
Любой целый
Наименьший целый
=
Равно
Любой простой или строковый
Логический
< >
Не равно
Тоже
Тоже
<
Меньше
Логический
Логический
<=
Меньше или равно
Тоже
Тоже
>
Больше
То же
Тоже
>=
Больше или равно
Тоже
Тоже
Унарная операция @ применяется к операнду любого типа и возвращает результат типа pointer (указатель).
В Object Pascal определены следующие логические операции:
· not- логическое НЕ;
· and- логическое И;
· or- логическое ИЛИ;
· xor- исключительное ИЛИ.
Логические операции применимы к операндам целого и логического типов. Если операнды - целые числа, то результат логической операции есть тоже целое число, биты которого (двоичные разряды) формируются из битов операндов по правилам, указанным в табл. 3.8.
Таблица 3.8.Логичеcкие операции над данными целого типа (поразрядно)
Операнд 1
Операнд 2
not
and
or
xor
-
-
-
-
-
-
-
-
-
-
-
-
К логическим в Object Pascal обычно относятся и две сдвиговые операции над целыми числами:
i shlj – сдвиг содержимого i на jразрядов влево; освободившиеся младшие разряды заполняются нулями;
i shrj – сдвиг содержимого i на jразрядов вправо; освободившиеся старшие разряды заполняются нулями.
В этих операциях i и j– выражения любого целого типа.
Логические операции над логическими данными дают результат логического типа по правилам, указанным в табл. 3.9.
Операция отношения in применяется к двум операндам. Первым (левым) операндом должно быть выражение любого порядкового типа, вторым – множество, состоящее из элементов того же типа, или идентификатор множественного типа. Результат операции будет True, если левый операнд принадлежит множеству, и False в противном случае.
Таблица 3.9.Логические операции над данными логического типа