Вещественный+Вещественный | Целый Вещественный Вещественный Вещественный |
- 163 -
– | Операция вычитания | Целый–Целый Целый–Вещественный Вещественный-Целый Вещественный– Вещественный | Целый Вещественный Вещественный Вещественный |
or or | Логическое 'ИЛИ' Поразрядное 'ИЛИ' | Логический Целый | Логический Целый |
xor xor | Логическое исключающее 'ИЛИ' Поразрядное исключающее 'ИЛИ' | Логический Целый | Логический Целый |
Четвертый (низший) приоритет
Бинарные операции
= <> < > <= >= | Операции отношения | Число и число Строка и число Строка и литера Pointer и Pointer Множества | Логический |
in | Вхождение в множество | Элементарный и множество | Логический |
Примечания:
1. Под вещественными понимаются тип Real и вещественные типы, поддерживаемые математическим сопроцессором (типы с повышенной точностью).
2. Под целыми понимаются целочисленные типы языка.
3. В таблице указан оператор @, не имеющий никакого отношения к математике. Он включен только для показа его приоритета.
При вычислениях сначала применяются операции наивысшего порядка, затем более низкого. Операции равного приоритета вычисляются слева направо:
2*3/4/5 = ((2 * 3)/4)/5
Применение скобок позволяет явно расставлять приоритеты и менять порядок вычислений.
Значение выражения X/Y всегда будет вещественного типа, независимо от типов операндов. Если Y равно 0, то произойдет фатальная ошибка (номер 200) и останов программы.
- 164 -
Значение выражение i div j представляет собой математическое частное i/j, округленное в меньшую сторону до значения целого типа. Если j равно 0, то результатом будет фатальная ошибка.
Операция деления по модулю mod возвращает остаток, полученный путем деления двух ее операндов, т.е.
i mod j = i - (i div j) * j
Знак результата операции mod будет тем же, что и знак i. Если j равно нулю, то результатом будет фатальная ошибка.
Кроме стандартных для всех языков математических действий над вещественными и целыми числами, Турбо Паскаль вводит дополнительные операции над целыми числами, в том числе и так называемую битовую, или поразрядную, арифметику.
Битовая арифметика хорошо развита в языке Турбо Паскаль. Необходимость в ее применении возникает, когда надо работать не с десятичными значениями чисел, а с их двоичным представлением. В этом случае можно сравнивать отдельные биты двух чисел, выделять двоичные фрагменты, заменять их и т.п. Это часто используется при работе с видеопамятью в текстовом или графическом режимах. Кроме того, есть ряд чисто математических задач, которые удобно решать в двоичном представлении.
Ограничение на битовые операции одно: они должны применяться только над целыми типами — Byte, ShortInt, Word, Integer, LongInt и совместимыми с ними. Именно эти типы кодируют значения в правильные двоичные числа, как в школьном учебнике по информатике. (То, что в памяти некоторые целые типы хранят свои байты значений в обратном порядке, никак не влияет на поразрядные действия и логику работы с ними. Все особенности учитываются самими поразрядными операциями, и мы можем о них даже не вспоминать.) Например, значения 4 и 250 типа Byte представляются как двоичные наборы 00000100 и 11111010, число 65535 типа Word — это уже 16 бит: 11111111 11111111 и т.д.