В Си используется следующий набор операций отношения:
< меньше;
<= меньше или равно;
> больше;
>= больше или равно, равно;
!= не равно.
В стандарте Си нет логического типа данных. Поэтому результатом операции отношения является целое число: если отношение истинно – 1, если ложно – 0.
Примеры отношений:
а<0, 101>=105, 'а'== ‘А’, 'а'!='А'
Результатом второго и третьего отношений будет 0 – ложь; результат четвертого отношения равен 1 – истина; результат первого отношения зависит от значения переменной а.
2.7.3 Логические операции
Три основные логические операции в языке Си:
! операция отрицания (НЕ);
&& конъюнкция, логическое умножение (И);
| | дизъюнкция, логическое сложение (ИЛИ).
Правила их выполнения определяются таблицей 2, где A, B – операнды логического выражения, принимающие значения T – истина, F – ложь.
Таблица 2 - Таблица истинности
A
B
!A
A && B
A || B
T
T
F
T
T
T
F
F
F
T
F
F
T
F
F
F
T
T
F
T
Например, логическое выражение, соответствующее двойному неравенству 0 <х< 1 в программе на Си запишется в виде следующего логического выражения:
х>0 && х<1
Здесь не понадобились круглые скобки для выделения операций отношения, так как в языке Си операции отношения старше конъюнкции и дизъюнкции. По убыванию приоритета логические операции и операции отношения расположены в следующем порядке:
!
> < >= <=
= = !=
&&
II
Помимо рассмотренных в Си имеются поразрядные логические операции. Эти операции выполняются над каждой парой соответствующих двоичных разрядов внутреннего представления операндов. Их еще называют битовыми логическими операциями. Знаки битовых логических операций:
& поразрядная конъюнкция (И);
| поразрядная дизъюнкция (ИЛИ);
^ поразрядное исключающее ИЛИ;
~ поразрядное отрицание (НЕ).
Битовые логические операции вместе с операциями поразрядного сдвига влево (<<) и вправо (>>) позволяют добраться до каждого бита внутреннего кода. Чаще всего такие действия приходится выполнять в системных программах.