Операции с битами информации

Результат операции 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 битов вправо Освободившиеся биты заполняются нулями.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: