Результат операции AND
Логические операции
Операции отношения
Операции отношения предназначены для сравнения различных величин (величины должны быть сравнимых типов). Результат сравнения имеет логический тип. Имеются следующие операции отношения:
= - равно; < > - не равно;
> - больше; >= - больше или равно;
< - меньше; <= меньше или равно.
Операции отношения используются также для указателей, строк и множеств.
Для величин логического типа определены логические операции NOT (не), AND (и), OR (или), XOR (исключающее или).
Операция NOT имеет смысл противоположного события, она изменяет значение FALSE на TRUE и наоборот.
NOT(a<b) º a>=b;
NOT(a=b) º a< >b;
Операция AND называется также конъюнкцией или логическим умножением.
A & B | A | ||
TRUE | FALSE | ||
B | TRUE | TRUE | FALSE |
FALSE | FALSE | FALSE |
Операция ИЛИ (OR), иначе говоря, логическая дизъюнкция (логическое сложение).
Результат операции OR
A Ú B | A | ||
TRUE | FALSE | ||
B | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE |
Операция исключающее ИЛИ (XOR) даёт результат TRUE, если только один из операндов имеет значение TRUE, а другой имеет значение FALSE; при совпадении логических значений операндов результат имеет значение FALSE. В математике эту операцию часто называют сложением по модулю.
|
|
Результат операции XOR
A Å B | A | ||
TRUE | FALSE | ||
B | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE |
В Турбо Паскале имеется два вида вычисления логических выражений: полное вычисление и укороченное вычисление. Так при вычислении
1. a and b and c and d;
2. a or b or c or d;
в первом выражении достаточно получить одно значение FALSE, чтобы прекратить проверки, а во втором вычисление логического выражения теряет смысл при получении первого значения TRUE.
Выбор вида вычислений осуществляется с помощью директивы компилятора $B. В случае директивы{$B-} (этот вариант выбирается по умолчанию) производится укороченное вычисление. В случае директивы {$B+} производится полное вычисление.
Операции NOT, AND, OR, XOR (а также SHL,SHR) можно использовать для побитовых операций с целыми числами, при этом тип величин не меняется.
Результат битовой операции AND (И)
а AND b | а | ||
b | |||
Операция И может использоваться для наложения «маски» – выделения из некоторого целого числа определенной части его разрядов. Например, пусть имеем переменную х типа byte. Требуется выделить 4 младших разряда и записать их в переменную y. Тип байт – это 8 разрядов двоичного кода, тогда требуемый результат достигается следующей записью
Y:=X and 15, или, что то же самое Y:=x and $F.
Результат битовой операции OR (ИЛИ)
а OR b | а | ||
b | |||
Результат битовой операции XOR (исключающее ИЛИ)
|
|
а XOR b | а | ||
b | |||
SHL операция i SHL j сдвигает значение i на j битов влево. Освободившиеся биты заполняются нулями.
SHR операция i SHR j сдвигает значение i на j битов вправо Освободившиеся биты заполняются нулями.