• истина (обозначается т, внутреннее представление целым числом со значением -1, то есть единицы во всех битах),
• ложь (далее обозначается F, внутреннее представление целым числом со значением 0, то есть нули во всех битах).
Логические операции осуществляются со всеми их двоичными разрядами независимо друг от друга. Использование целых чисел с другими значениями в качестве логических переменных в общем случае не корректно. Но для проверки условий может использоваться и значение числового (но не строкового!) выражения, при этом нулевому значению соответствует ложь, а всем остальным — истина.
Логическая переменная получается из пары числовых выражений операциями отношения numericexpressioni relational-operator numericexpression2
(2.59) и считается истиной, если это отношение соблюдается, или ложью в противоположном случае.
relational-operator (2.60)
задает операции отношения, символы которых имеют следующий смысл:
= первое число равно второму числу, > первое число больше второго числа, >= первое число больше или равно второму числу, < первое число меньше второго числа, <= первое число меньше или равно второму числу, о первое число не равно второму числу.
Выражение с унарной логической операцией отрицания записывается в виде:
NOT expressioni (2.61)
При значениях операнда Т и F значения выражения равны F и Т соответственно.
Выражение с бинарными логическими операциями записывается в виде:
expressioni boolean-operator expression2 (2.62)
Значения выражений с бинарными логическими операциями AND (логическое И или конъюнкция), OR (логическое объединяющее ИЛИ или дизъюнкция), XOR (исключающее ИЛИ), EQV (логическая эквивалентность) и IMP (импликация) приведены в таблице для всех пар значений операндов:
Expressioni |
Expression2 |
NOT |
AND |
OR |
XOR |
EQV |
IMP |
Т |
Т |
F |
Т |
Т |
F |
Т |
т |
Т |
F |
F |
F |
Т |
Т |
F |
F |
F |
Т |
Т |
F |
т |
Т |
F |
Т |
F |
F |
Т |
F |
F |
F |
Т |
Т |
(2.63)