К битовым операциям относятся также операции сдвигов.
shl - сдвиг влево. Выражение M shl K сдвигает содержимое переменной M на K битов влево. Освобождающиеся справа биты заполняются нулями.
Сдвиг влево на один разряд эквивалентен умножению числа на 2, сдвиг на n разрядов - умножению на 2 в степени n.
Сдвиг вправо
shr - сдвиг вправо. Выражение M shr K сдвигает содержимое переменной M на K битов вправо. Освобождающиеся слева биты заполняются нулями.
Лекция 11
Приоритеты операций
Вычисление любого выражения выполняется с учетом приоритетов операций, входящих в это выражение. Чтобы изменить порядок вычислений используются круглые скобки и выражение в скобках вычисляется и рассматривается как отдельный операнд. Кроме того, предварительно определяются все переменные и константы, разыскиваются элементы массивов, входящие в выражение. Затем вычисляются функции, к которым есть обращения, и далее выражение начинает выполняться слева направо, но с учетом приоритетов. Приоритеты операций приведены в таблице. Первый приоритет - самый высокий.
Таблица 8. Приоритеты операции Турбо-Паскаля
приоритет
тип операций (действий)
список операций
Вычисления в скобках
( ), []
Вычисления функций
любые функции
Унарные операции
@,^,not,унарный"-"
Операции типа умножения
*,/,div,mod,and,shl,shr
Операции типа сложения
+,-,or,xor
Операции отношений
=, <>, >, >=, <, <=
Операция присваивания
:=
Примеры (цифры под выражением указывают порядок вычислений):
A x B
дробное выражение ----- записывается как A*B/C/D или A*B/(C*D)
C x D 1 2 3 1 3 2
пример логического выражения:
(X<1.5) or ( 2.5-3.2*X+Y * -sin(0.5/Z-1)* 0.01/ exp(sqr(-X /2.0))>Y ) and
1 21 3 2 15 8 7 6 4 5 9 14 13 12 10 11 16 20
not(-X <> P1)
19 17 18
Иногда, при включении директив оптимизации, транслятор может нарушить порядок (слева направо) при выполнении операций одного приоритета, но логические выражения с укороченной схемой обязательно вычисляются слева направо.