Программирование в среде Турбо Паскаль (Поляков, Круглов) - страница 105

Вещественный+Вещественный

Целый

Вещественный

Вещественный

Вещественный

- 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 равно нулю, то результатом будет фатальная ошибка.

9.2. Битовая арифметика


Кроме стандартных для всех языков математических действий над вещественными и целыми числами, Турбо Паскаль вводит дополнительные операции над целыми числами, в том числе и так называемую битовую, или поразрядную, арифметику.

Битовая арифметика хорошо развита в языке Турбо Паскаль. Необходимость в ее применении возникает, когда надо работать не с десятичными значениями чисел, а с их двоичным представлением. В этом случае можно сравнивать отдельные биты двух чисел, выделять двоичные фрагменты, заменять их и т.п. Это часто используется при работе с видеопамятью в текстовом или графическом режимах. Кроме того, есть ряд чисто математических задач, которые удобно решать в двоичном представлении.

Ограничение на битовые операции одно: они должны применяться только над целыми типами — Byte, ShortInt, Word, Integer, LongInt и совместимыми с ними. Именно эти типы кодируют значения в правильные двоичные числа, как в школьном учебнике по информатике. (То, что в памяти некоторые целые типы хранят свои байты значений в обратном порядке, никак не влияет на поразрядные действия и логику работы с ними. Все особенности учитываются самими поразрядными операциями, и мы можем о них даже не вспоминать.) Например, значения 4 и 250 типа Byte представляются как двоичные наборы 00000100 и 11111010, число 65535 типа Word — это уже 16 бит: 11111111 11111111 и т.д.