Чет про программирование / 4) Основные операторы ЯП Паскаль
.docxОсновные операторы ЯП Паскаль
Операторы – действия, производимые над операндами (переменными). Все операторы делятся на
-
Унарные (унарный +, унарный -)
-
Бинарные
-
Тернарные.
Бинарные операторы ЯП Паскаль в порядке понижения приоритета:
-
Унарные операторы: Not, +, -
-
/, *, div, mod, shl, shr, <<, >>, and
-
+, -, or, xor
-
=, <>, <=, >=
Побитовые операции
Битовые операции – операции, производимы над цепочками битов: логические побитовые операции и битовые сдвиги.
Логические побитовые операции аналогичны обычным логическим операциям, но производятся над цепочками битов, а их результатом является не булев тип, а целое число.
-
НЕ: инвертирует каждый бит числа
-
И: ее действие эквивалентно применению операции логической «И» к каждой паре битов, которые стоят на одинаковых позициях в двоичных представлениях операндов.
-
ИЛИ: ее действие эквивалентно применению логического ИЛИ к каждой паре битов, которые стоят на одинаковых позициях в двоичных представлениях операндов.
-
ИСКЛЮЧАЮЩЕЕ ИЛИ: ее действие эквивалентно применению соответствующей операции к паре битов, которые стоят на одинаковых позициях в двоичных представлениях операндов.
К битовым операциям также относят битовые сдвиги. При сдвиге значения битов копируются в соседние по направлению сдвига. Различают несколько видов сдвигов — логический, арифметический и циклический, в зависимости от обработки крайних битов.
Также различают сдвиг влево SHL (в направлении от младшего бита к старшему) и вправо SHR (в направлении от старшего бита к младшему).
-
Логический: при логическом сдвиге значение последнего бита по направлению сдвига теряется (копируясь в бит переноса), а первый приобретает нулевое значение.
-
Арифметический: аналогичен логическому, но значение слова считается знаковым числом, представленным в дополнительном коде. Так, при правом сдвиге старший бит сохраняет свое значение. Левый арифметический сдвиг идентичен логическому. Арифметические сдвиги влево и вправо используются для быстрого умножения и деления на 2.
-
Циклический: При циклическом сдвиге, значение последнего бита по направлению сдвига копируется в первый бит (и копируется в бит переноса).
Битовые маски – закодированные флаги и числа для работы с ними. Примеры использования:
-
F and (1 shl i) – значение флага с номером i
-
F or (1 shl i) – устанавливает i-й флаг
-
F and not(1 shl i) – сброс флага с номером i