Основные логические операторы Название логической операции
| Оператор
| математ.
| Basic, Pascal
| С++, Java
| логическое отрицание «НЕ» (инверсия)
| ¯
|
| Not
| !
| логическое «И» (конъюнкция)
| Ù
| ·
| And
| &&
| логическое «ИЛИ» (дизъюнкция)
| Ú
| +
| Or
| | |
|
Простейший логический оператор – NOT. Он предшествует единственному операнду и возвращает его логическую противоположность – иначе говоря, «отрицает» операнд. Например, выражение NOT Тruе даёт в результате False (булево значение, обратное Тruе); а выражение NOT (4 < 3) – Тruе, так как условие (4 < 3) ложно. Кроме того, этот оператор обладает наивысшим приоритетом по сравнению с остальными булевыми операторами. Кстати, операция отрицания является унарной, или одноместной, в отличие от остальных логических операций, являющихся бинарными, или двуместными, т.е. выполняющими действия с двумя операндами.
Следующий (в порядке убывания приоритета) оператор – AND. Он возвращает True, только если оба операнда имеют значение True. По смыслу он соответствует английскому слову and (русскому и), что можно проиллюстрировать, например, таким утверждением: «Он получит эту должность, только если знает английский и разбирается в компьютерах».
Оператор OR возвращает True, если любой из двух операндов True или если оба True. И в этом случае логический смысл оператора совпадает с соответствующим словом в языке: «Я куплю этого кота, если он не дороже 50 долларовилиесли он – сиамской породы».
Аналогично операциям сравнения логические операции могут связать два или более отношения и возвратить истинную или ложную величину, используемую для управления ходом выполнения программы.
Пример 1. Определить, что сумма баллов S,набранная студентом на тестированиинаходится в пределах 60¸100 баллов, т.е. принадлежит интервалу [60,100] :
S >= 60 AND S <= 100.
Пример 2. Определить, что сумма баллов S,набранная студентом на тестировании,не входит в пределы 60¸100 баллов, т.е. находится вне интервала [60, 100] :
NOT (S >= 60 AND S <= 100);
или, что даёт тот же самый результат,
S < 60 OR S > 100.
Правила выполнения операций в алгебре логики определяются рядом аксиом, теорем и следствий. В частности, для алгебры логики выполняются следующие законы:
1) сочетательный (ассоциативность):
(а OR b) OR с = а OR (b OR с);
(а AND b) AND с = а AND (b AND с).
2) переместительный (коммутативный):
а OR b = b OR а;
а AND b = b AND а.
3) распределительный (дистрибутивность конъюнкции и дизъюнкции относительно дизъюнкции и конъюнкции):
а AND (b OR с) = а AND b OR а AND с;
а OR b AND с = (а OR b) AND (а OR с).
Справедливы также следующие соотношения: NOT NOT a = a; а OR а AND b = а; NOT a OR NOT b = NOT (a AND b) и др.
Логические операции могут производиться не только над булевыми величинами, но и над битами операндов. В этом случае логическая операция возвращает поразрядный результат, который либо истинен (1), либо ложен (0). В языках программирования могут существовать специальные операторы побитового выполнения логических операций. Например, в «Си++» и «Ява» поразрядным (побитовым) операциям НЕ, И, ИЛИ соответствуют операторы ~, &, | (сравните с операторами табл. 7).
В Бейсике используются только побитовые логические операции, а операнды представляются в восьми-, шестнадцати- или тридцатидвухразрядном дополнительном коде. При этом булевым значениям False и Тruе соответствуют десятичные значения 0 и -1, так, 0 – число, в котором все биты обнулены, а -1 – двоичное число, все биты которого установлены в 1 (см. табл. 3).
Операциям исключающее ИЛИ (неравнозначность), эквивалентность (равнозначность, ↔) и импликация (если то, →) в Бейсике соответствуют операторы XOR, EQV и IMP. Результат логической операции определяется поразрядно согласно таблице 8. Операторы приведены в порядке убывания их приоритета.
Таблица 8
Результаты, возвращаемые логическими операциями
Операнды
| Результаты операций
| Х
| Y
| NOT Х
| Х AND Y
| X OR Y
| X XOR Y
| X EQV Y
| X IMP Y
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Примечание. В языке программирования Бейсик для обозначения целочисленных операндов, представленных в восьмеричной и шестнадцатеричной системах счисления, используются префиксы &O и &H соответственно.
Основы элементной базы ЭВМ
При построении функциональных узлов ЭВМ используются элементы, которые реализуют базовую систему логических функций. Одним из таких базовых наборов является набор из трёх элементов, включающий в себя инвертор (логическое НЕ), конъюнктор (логическое И) и дизъюнктор (логическое ИЛИ). На рисунках таблицы 9 показаны условные обозначения базовых логических элементов, а также значения выходного сигнала z в зависимости от входных сигналов в одном масштабе времени t. Сравните эти диаграммы с соответствующими данными таблицы 8. Ноль изображается на диаграммах низким значением сигнала, а единица – высоким.
Таблица 9
|