Логическое или как пишется

Дизъю́нкция — логическая операция, по своему применению максимально приближенная к союзу «или» в смысле «или то, или это, или оба сразу». Синонимы: логи́ческое «ИЛИ», включа́ющее «ИЛИ», логи́ческое сложе́ние, иногда просто «ИЛИ».

Это бинарная инфиксная операция, то есть, она имеет два операнда и стоит между ними. Чаще всего встречаются следующие варианты записи:
~a || ~b, ~a | ~b, a lor b, a + b, ~a~mbox{OR} ~b.

Содержание

  • 1 Булева алгебра
  • 2 Многозначная логика
  • 3 Классическая логика
  • 4 Программирование
  • 5 Связь с естественным языком
  • 6 См. также

Булева алгебра

В булевой алгебре дизъюнкция — это функция двух переменных (они же — операнды операции). Переменные Правило: результат равен ~0, если оба операнда равны ~0; во всех остальных случаях результат равен ~1.

Таблица истинности
~a ~b ~a lor b
~0 ~0 ~0
~0 ~1 ~1
~1 ~0 ~1
~1 ~1 ~1

Многозначная логика

В многозначной логике операция дизъюнкции может определяться другими способами. Чаще всего применяется схема: a lor b = max(a, b), где ~a, b in [0, 1]. Возможны и другие варианты. Как правило, стараются сохранить совместимость с булевой алгеброй для значений операндов ~0, 1.

Классическая логика

В классическом исчислении высказываний свойства дизъюнкции определяются с помощью аксиом. Классическое исчисление высказываний может быть задано разными системами аксиом, и некоторые из них будут описывать свойства дизъюнкции. Один из самых распространенных вариантов включает 3 аксиомы для дизъюнкции:
~a to a lor b
~b to a lor b
~(a to c) to ((b to c) to ((a lor b) to c))

С помощью этих аксиом можно доказать другие формулы, содержащие операцию дизъюнкции. Обратите внимание, что в классическом исчислении высказываний не происходит вычисления результата по значениям операндов (как в булевой алгебре), а требуется доказать формулу как единое целое на основе аксиом и правил вывода.

Программирование

В компьютерных языках используется два основных варианта дизъюнкции: логическое «ИЛИ» и побитовое «ИЛИ». Например, в языках C/C++ логическое «ИЛИ» обозначается символом «||», а побитовое — символом «|».

Логическое «ИЛИ» применяется в операторах условного перехода или в аналогичных случаях, когда требуется получение результата ~false или ~true. Например:

if (a || b) 
{
    /* какие-то действия */
};

Результат будет равен ~false, если оба операнда равны ~false или ~0. В любом другом случае результат будет равен ~true.

При этом применяется стандартное соглашение: если значение левого операнда равно ~true, то значение правого операнда не вычисляется (вместо ~b может стоять сложная формула). Такое соглашение ускоряет исполнение программы и служит полезным приемом в некоторых случаях. Например, если левый операнд проверяет необходимость вычисления правого операнда:

if (a == NULL || a->x == 0) 
{
    /* какие-то действия */
};

В этом примере, благодаря проверке в левом операнде, в правом операнде никогда не произойдет разыменования нулевого указателя.

Побитовое «ИЛИ» выполняет обычную операцию булевой алгебры для всех битов левого и правого операнда попарно. Например,

Связь с естественным языком

Часто указывают на сходство между дизъюнкцией и союзом «или» в естественном языке, когда он употребляется в смысле «или то, или то, или оба сразу». В юридических документах часто пишут: «и/или», подразумевая «или то, или то, или оба сразу». Составное утверждение «A и/или B» считается ложным, когда ложны оба утверждения A и B, в противном случае составное утверждение истинно. Это в точности соответствует определению дизъюнкции в булевой алгебре, если «истину» обозначать как 1, а «ложь» как 0.

Неоднозначность естественного языка заключается в том, что союз «или» используется в двух значениях: то для обозначения дизъюнкции, то для другой операции — исключающего «ИЛИ».

См. также

  • Логическая операция
  • Конъюнкция
  • Импликация
  • Отрицание

Wikimedia Foundation.
2010.

Логическое ИЛИ (||)

Логический оператор ИЛИ (||) (дизъюнкция) для набора операндов истинен будет true только в случае, если один или несколько его операндов имеют значение true.

Обычно используется с булевыми (логическими) значениями. Тогда возвращается булевое значение. Однако фактически оператор || возвращает значение одного из операндов, поэтому если этот оператор используется с небулевыми значениями, он вернет небулевое значение.

Интерактивный пример

Синтаксис

Описание

Если expr1 может быть преобразовано в true, то вернётся expr1; в противном случае возвращается expr2.

Если значение может быть преобразовано в true, то оно рассматривается как истиноподобное (truthy). Если же значение может быть преобразовано в false, то оно называется ложноподобным (falsy).

Примеры выражений, которые могут быть преобразованы в false:

  • null;
  • NaN;
  • 0;
  • пустая строка ("", '', ``);
  • undefined.

Несмотря на то, что оператор || может использоваться с операндами без логических значений, это всё равно булевый оператор, поскольку его возвращаемое значение всегда можно преобразовать в булевый примитив.
Чтобы явно преобразовать возвращаемое значение этого оператора (или вообще любое выражение) в соответствующее значение булевого типа, используйте двойной оператор НЕ или конструктор Boolean (en-US).

Сокращённое вычисление

Оператор логического ИЛИ вычисляется слева направо, делая возможным сокращённое вычисление выражения, согласно следующему правилу:

(истинноподобное выражение) || следующее выражение — вычисление останавливается на истинноподобном выражении;

Сокращенное вычисление хорошо тем, что следующее выражение не будет вычислено, т.е. всё, связанное с ним, будет проигнорировано (например, если
следующее выражение представляет собой вызов функции, то он никогда не произойдёт). Всё потому, что значение оператора известно уже после вычисления первого операнда. Посмотрите на пример:

function A(){ console.log('вызвана функция A'); return false; }
function B(){ console.log('вызвана функция B'); return true; }

console.log( B() || A() );
// В результате вызова функции B, в консоли будет выведено "вызвана функция B",
// а далее в консоли появится false (это результат оператора)

Приоритет операторов

Следующие выражения могут показаться эквивалентными, но это не так, потому что оператор && выполняется до оператора || (см. приоритет операторов).

true || false && false      // вернёт true, поскольку сначала вычисляется && 
(true || false) && false    // вернёт false, поскольку у группировки выше приоритет

Примеры

Использование оператора ИЛИ

В следующем коде показаны примеры использования оператора || (логическое ИЛИ).

o1 = true  || true       // t || t вернёт true
o2 = false || true       // f || t вернёт true
o3 = true  || false      // t || f вернёт true
o4 = false || (3 == 4)   // f || f вернёт false
o5 = 'Cat' || 'Dog'      // t || t вернёт "Cat"
o6 = false || 'Cat'      // f || t вернёт "Cat"
o7 = 'Cat' || false      // t || f вернёт "Cat"
o8 = ''    || false      // f || f вернёт false
o9 = false || ''         // f || f вернёт ""
o10 = false || varObject // f || object вернёт varObject

Примечание: Если вы используете этот оператор, чтобы задать значение по умолчанию для некоторой переменной, имейте в виду, что любое ложноподобное будет проигнорировано. Если вам нужно исключить только null или undefined, попробуйте воспользоваться оператором нулевого слияния.

Правила конвертации для булевых значений

Конвертация И в ИЛИ

Следующая операция с булевыми значениями:

bCondition1 && bCondition2

всегда эквивалентна:

!(!bCondition1 || !bCondition2)

Конвертация ИЛИ в И

Следующая операция с булевыми значениями:

bCondition1 || bCondition2

всегда эквивалентна:

!(!bCondition1 && !bCondition2)

Удаление вложенных круглых скобок

Поскольку логические выражения вычисляются слева направо, всегда можно удалить круглые скобки из сложного выражения при условии соблюдения определенных правил.

Следующая составная операция с булевыми значениями:

bCondition1 && (bCondition2 || bCondition3)

всегда эквивалентна:

!(!bCondition1 || !bCondition2 && !bCondition3)

Спецификации

Specification
ECMAScript Language Specification
# prod-LogicalORExpression

Поддержка браузерами

BCD tables only load in the browser

Смотрите также

Логические операторы это специальные символы (или сочетания символов), которые изменяют или комбинируют логические значения типа Boolean — true и false. Их используют чтобы создавать сложные условия, например в циклах.

Логические операторы

Оператор НЕ (!, not)

Выражение вида !true равно false и наоборот. ! — унарный оператор (применяется к одному операнду), он помещается перед операндом.

Оператор И (&&, and)

Выражение вида a && b будет равно true только тогда, когда и а и b равны true.

Оператор ИЛИ (||, or)

Выражение a || b будет равно true, когда или a, или b (или оба) равен true.

Оператор исключающее ИЛИ (^, xor)

Выражение a ^ b будет равно true, когда только один из операндов имеет значение true. Подробно о применении xor рассказывается в статье «Практика применения XOR в программировании»

Оператор эквивалентности ==

Выражение a == b будет равно true, когда a и b имеют одинаковые значения.

Оператор неравенства !=

Выражение a != b будет равно true, когда a и b имеют разные значения.

Таблица значений логических операторов

Приоритет логических операторов

  1. Оператор эквивалентности — ==, оператор неравенства — !=.
  2. Оператор отрицания — !.
  3. Оператор И — &&.
  4. Оператор исключающее ИЛИ — ^.
  5. Оператор ИЛИ — ||.

Предлагаем вам пройти тест и узнать, насколько хорошо вы разобрались с логическими операторами:


О битовых операциях

Добавлено 8 мая 2021 в 18:37

Хотя операторы отношения (сравнения) могут использоваться для проверки того, является ли конкретное условие истинным или ложным, они могут проверять только одно условие за раз. Но часто нам нужно знать, выполняются ли одновременно несколько условий. Например, чтобы проверить, выиграли ли мы в лотерею, мы должны сравнить, все ли выбранные нами числа совпадают с выигрышными числами. В лотерее с 6 числами это будет включать 6 сравнений, и все они должны быть верными. В других случаях нам нужно знать, выполняется ли какое-либо из нескольких условий. Например, мы можем решить пропустить работу сегодня, если мы заболели, или если мы слишком устали, или если мы выиграли в лотерею в нашем предыдущем примере. Это потребует проверки того, верно ли какое-либо из трех сравнений.

Возможность тестирования несколько условий нам дают логические операторы.

В C++ есть 3 логических оператора:

Логические операторы

Оператор Обозначение Пример использования Операция
Логическое НЕ (NOT) ! !x true, если x равен false; или false, если x равен true
Логическое И (AND) && x && y true, если и xy равны true; в противном случае – false
Логическое ИЛИ (OR) || x || y true, если x или y равен true; в противном случае – false

Логическое НЕ (NOT)

Вы уже сталкивались с унарным оператором логического НЕ в уроке «4.9 – Логические (булевы) значения». Мы можем резюмировать эффекты логического НЕ следующим образом:

Логическое НЕ (оператор !)

Операнд Результат
true false
false true

Если операнд логического НЕ вычисляется как true, логическое НЕ вычисляется как false. Если операнд логического НЕ вычисляется как false, логическое НЕ вычисляется как true. Другими словами, логическое НЕ меняет логическое значение с true на false и наоборот.

Логическое НЕ часто используется в условных выражениях:

bool tooLarge { x > 100 }; // tooLarge равно true, если x > 100
if (!tooLarge)
    // делаем что-нибудь с x
else
    // выводим ошибку

Следует остерегаться того, что логическое НЕ имеет очень высокий уровень приоритета. Начинающие программисты часто делают следующую ошибку:

#include <iostream>
 
int main()
{
    int x{ 5 };
    int y{ 7 };
 
    if (!x > y)
        std::cout << x << " is not greater than " << y << 'n';
    else
        std::cout << x << " is greater than " << y << 'n';
 
    return 0;
}

Эта программа напечатает:

5 is greater than 7

Но x не больше y, так как же это возможно? Ответ заключается в том, что поскольку оператор логического НЕ имеет более высокий приоритет, чем оператор «больше чем», выражение !x > y фактически вычисляется как (!x) > y. Поскольку x равно 5, !x вычисляется как 0, а 0 > y равно false, поэтому выполняется инструкция else!

Правильный способ написать приведенный выше фрагмент:

#include <iostream>
 
int main()
{
    int x{ 5 };
    int y{ 7 };
 
    if (!(x > y))
        std::cout << x << " is not greater than " << y << 'n';
    else
        std::cout << x << " is greater than " << y << 'n';
 
    return 0;
}

Таким образом, сначала будет вычислено x > y, а затем логическое НЕ инвертирует логический результат.

Лучшая практика


Если логическое НЕ предназначено для работы с результатом других операторов, другие операторы и их операнды должны быть заключены в круглые скобки.

Простое использование логического НЕ, например if (!value), не требует скобок, потому что приоритет здесь не играет роли.

Логическое ИЛИ (OR)

Оператор логического ИЛИ используется для проверки того, выполняется ли одно из двух условий. Если значение левого операнда истинно, или значение правого операнда истинно, или оба значения истинны, то логический оператор ИЛИ возвращает true. В противном случае он вернет false.

Логическое ИЛИ (оператор ||)

Левый операнд Правый операнд Результат
false false false
false true true
true false true
true true true

Например, рассмотрим следующую программу:

#include <iostream>
 
int main()
{
    std::cout << "Enter a number: ";
    int value {};
    std::cin >> value;
 
    if (value == 0 || value == 1)
        std::cout << "You picked 0 or 1n";
    else
        std::cout << "You did not pick 0 or 1n";
    return 0;
}

В этом случае мы используем логический оператор ИЛИ, чтобы проверить, истинно ли левое условие (value == 0) или правое условие (value == 1). Если одно из них (или оба) истинны, логический оператор ИЛИ принимает значение true, что означает выполнение инструкции if. Если ни одно из них не является истинным, результат логического оператора ИЛИ будет false, что означает выполнение инструкции else.

Вы можете связать вместе множество операторов логического ИЛИ:

if (value == 0 || value == 1 || value == 2 || value == 3)
     std::cout << "You picked 0, 1, 2, or 3n";

Начинающие программисты иногда путают оператор логическое ИЛИ (||) с оператором побитовое ИЛИ (|) (который будет рассмотрен позже). Несмотря на то, что у них обоих в названии есть «ИЛИ», они выполняют разные функции. Их смешивание, вероятно, приведет к неверным результатам.

Логическое И (AND)

Логический оператор И используется для проверки истинности обоих операндов. Если оба операнда равны true, логическое И возвращает true. В противном случае возвращается false.

Логическое И (оператор &&)

Левый операнд Правый операнд Результат
false false false
false true false
true false false
true true true

Например, нам может потребоваться узнать, находится ли значение переменной x в диапазоне от 10 до 20. На самом деле это два условия: нам нужно знать, больше ли x, чем 10, а также меньше ли x, чем 20.

#include <iostream>
 
int main()
{
    std::cout << "Enter a number: ";
    int value {};
    std::cin >> value;
 
    if (value > 10 && value < 20)
        std::cout << "Your value is between 10 and 20n";
    else
        std::cout << "Your value is not between 10 and 20n";
    return 0;
}

В этом случае мы используем оператор логическое И, чтобы проверить, истинны ли левое условие (value > 10) и правое условие (value < 20). Если оба условия истинны, оператор логическое И принимает значение true, и выполняется инструкция if. Если ни одно из условий или хотя бы одно из них не соответствует истине, оператор логическое И принимает значение false, и выполняется инструкция else.

Как и в случае с логическим ИЛИ, вы можете связать вместе множество операторов логическое И:

if (value > 10 && value < 20 && value != 16)
    // делаем что-то
else
    // делаем что-то другое

Если все эти условия верны, будет выполнена инструкция if. Если какое-либо из этих условий ложно, будет выполняться инструкция else.

Вычисление по короткой схеме

Чтобы логическое И возвращало true, оба операнда должны иметь значение true. Если первый операнд вычисляется как false, логическое И знает, что оно должно возвращать false, независимо от того, вычисляется ли второй операнд как true или false. В этом случае оператор логическое И немедленно вернет false, даже не вычисляя второй операнд! Это известно как вычисление по короткой схеме и выполняется в основном в целях оптимизации.

Точно так же, если первый операнд для логического ИЛИ равен true, тогда всё условие ИЛИ должно вычисляться как true, и второй операнд не вычисляется.

Вычисление по короткой схеме дает еще одну возможность показать, почему операторы, вызывающие побочные эффекты, не должны использоваться в составных выражениях. Рассмотрим следующий фрагмент:

if (x == 1 && ++y == 2)
    // сделать что-то

Если x не равно 1, всё условие должно быть ложным, поэтому ++y никогда не вычисляется! Таким образом, y будет инкрементироваться только в том случае, если x равен 1, что, вероятно, не совсем то, что задумывал программист!

Предупреждение


Вычисление по короткой схеме может привести к тому, что логическое ИЛИ и логическое И не будут вычислять один операнд. Избегайте использования выражений с побочными эффектами в выражениях с этими операторами.

Как и в случае с логическим и побитовым ИЛИ, начинающие программисты иногда путают оператор логическое И (&&) с оператором побитовое И (&).

Смешивание И и ИЛИ

Смешивания операторов логическое И и логическое ИЛИ в одном выражении часто невозможно избежать, но это область, полная потенциальных опасностей.

Многие программисты предполагают, что логическое И и логическое ИЛИ имеют одинаковый приоритет (или забывают, что это не так), точно так же, как сложение/вычитание и умножение/деление. Однако логическое И имеет более высокий приоритет, чем логическое ИЛИ, поэтому операторы логическое И будут вычисляться перед операторами логическое ИЛИ (если они не заключены в скобки).

Начинающие программисты часто пишут такие выражения, как value1 || value2 && value3. Поскольку логическое И имеет более высокий приоритет, это выражение вычисляется как value1 || (value2 && value3), а не как (value1 || value2) && value3. Надеюсь, это то, чего хотел программист! Если программист предполагал вычисление слева направо (как это происходит со сложением/вычитанием или умножением/делением), он или она получит не тот результат, который не ожидался!

При смешивании логического И и логического ИЛИ в одном выражении рекомендуется явно заключать в скобки каждый оператор и его операнды. Это помогает предотвратить ошибки приоритета, упрощает чтение кода и четко определяет, как вы рассчитывали вычислять выражение. Например, вместо записи value1 && value2 || value3 && value4, лучше написать (value1 && value2) || (value3 && value4).

Лучшая практика


При смешивании логического И и логического ИЛИ в одном выражении явно заключите каждую операцию в скобки, чтобы убедиться, что они вычисляются так, как вы хотите.

Закон де Моргана

Многие программисты также ошибаются, полагая, что !(x && y) – это то же самое, что !x && !y. К сожалению, так нельзя «распределять» логическое НЕ.

Закон де Моргана говорит нам, как логическое НЕ должно распределяться в этих случаях:

!(x && y) эквивалентно !x || !y
!(x || y) эквивалентно !x && !y

Другими словами, когда вы распределяете логическое НЕ, вам также необходимо преобразовать логическое И в логическое ИЛИ, и наоборот!

Иногда это может быть полезно при попытке упростить чтение сложных выражений.

Где логический оператор исключающее ИЛИ (XOR)?

Логический оператор исключающее ИЛИ (XOR) – это логический оператор, представленный на некоторых языках, который используется для проверки истинности нечетного числа условий.

Логическое исключающее ИЛИ

Левый операнд Правый операнд Результат
false false false
false true true
true false true
true true false

В C++ нет оператора логическое исключающее ИЛИ. В отличие от логического ИЛИ или логического И, логическое исключающее ИЛИ не может быть вычислено по короткой схеме. По этой причине создание оператора логическое исключающее ИЛИ из операторов логического ИЛИ и логического И является сложной задачей. Однако вы можете легко имитировать логическое исключающее ИЛИ (XOR), используя оператор неравенства (!=):

if (a != b) ... // a XOR b, предполагая, что a и b - логические значения

Это выражение можно расширить до нескольких операндов следующим образом:

if (a != b != c != d) ... // a XOR b XOR c XOR d, предполагая, что a, b, c и d 
                          // являются логическими значениями

Обратите внимание, что приведенные выше шаблоны логического исключающего ИЛИ работают только в том случае, если операнды являются логического типа (не целочисленными значениями). Если вам нужна форма логического исключающего ИЛИ, которая работает с не-логическими операндами, вы можете использовать static_cast для преобразования их в bool:

// a XOR b XOR c XOR d, для любого типа, который можно преобразовать в bool
if (static_cast<bool>(a) != static_cast<bool>(b) != static_cast<bool>(c) != static_cast<bool>(d)) ...

Небольшой тест

Вопрос 1

Вычислите следующие выражения.

Примечание: в ответах мы «объясняем нашу работу», показывая вам шаги, предпринятые для получения окончательного ответа. Шаги разделены символом →. Выражения, которые были проигнорированы из-за правила вычисления по короткой схеме, помещены в квадратные скобки. Например,

(1 < 2 || 3 != 3) →
(true || [3 != 3]) →
(true) →
true

означает, что мы вычислили (1 <2 || 3 != 3), чтобы прийти к (true || [3 != 3]), и вычислили его, чтобы прийти к true. 3 != 3 никогда не выполнялся из-за вычисления по короткой схеме.

a) (true && true) || false

Ответ

(true && true) || false →
true || [false] →
true

b) (false && true) || true

Ответ

(false && [true]) || true →
false || true →
true

Вычисление по короткой схеме имеет место быть, если первый операнд || равен true.

c) (false && true) || false || true

Ответ

(false && [true]) || false || true →
false || false || true →
false || true →
true

d) (5 > 6 || 4 > 3) && (7 > 8)

Ответ

(5 > 6 || 4 > 3) && (7 > 8) →
(false || true) && false →
true && false →
false

e) !(7 > 6 || 3 > 4)

Ответ

!(7 > 6 || 3 > 4) →
!(true || [3 > 4]) →
!true →
false

Теги

C++ / CppLearnCppДля начинающихЛогические операторЛогические типы даныхЛогическое И (AND)Логическое ИЛИ (OR)Логическое исключающее ИЛИ (XOR)Логическое НЕ (NOT)ОбучениеОператор (программирование)Программирование

Эта статья о NOR в логическом смысле. Для электронных ворот см. Ворота NOR. Для использования в других целях см. Ни.

«Стрела Пирса» перенаправляется сюда. Не следует путать с Пирс-Стрела, производитель автомобилей.

Логическое ИЛИ

НИ
Диаграмма Венна логического ИЛИ
Определение { displaystyle { overline {x + y}}}
Таблица истинности { displaystyle (0001)}
Логический вентиль НИ ANSI.svg
Нормальные формы
Дизъюнктивный { overline {x}}  cdot { overline {y}}
Конъюнктивный { overline {x}}  cdot { overline {y}}
Полином Жегалкина { Displaystyle 1  oplus x  oplus y  oplus xy}
Решетки столба
0-сохранение нет
1-консервирующий нет
Монотонный нет
Аффинный нет

В логическая логика, логично или или же совместное отрицание является функциональным оператором истинности, который дает результат, который является отрицанием логический или. То есть предложение формы (п НИ q) верно именно тогда, когда ни п ни q верно — т.е. когда оба п и q находятся ложный. В грамматика, ни это координационное соединение.

Оператор NOR также известен как Стрела Пирса—Чарльз Сандерс Пирс ввел символ ↓ для него,[1] и продемонстрировал, что логическое ИЛИ-ИЛИ полностью выразимо: комбинируя использование логического ИЛИ-ИЛИ, можно выразить любую логическую операцию с двумя переменными. Таким образом, как и с его двойной, то Оператор NAND (он же Инсульт Шеффера — обозначается как ↑, | или /), NOR может использоваться само по себе, без какого-либо другого логического оператора, для создания логического формальная система (делая NOR функционально полный ). Другие термины для оператора NOR включают Куайн кинжал (его символ был †), амфек (от древнегреческого ἀμφήκης, амфекес, «разрезая в обе стороны») Пирса,[2] и ни ни.

Другие способы записи P  downarrow Q включить, P NOR Q и «X»pq» (в Обозначение Бохенского Это логически эквивалентно { Displaystyle  neg (п  лор Q)}, где символ  lor означает ИЛИ и  neg означает отрицание.

В компьютер использовался в космическом корабле, который впервые доставил людей Луна, то Компьютер наведения Apollo, был построен полностью с использованием вентилей ИЛИ-НЕ с тремя входами.[3]

Определение

В NOR операция это логическая операция на двух логические значения, обычно значения двух предложения, что дает значение истинный тогда и только тогда, когда оба операнда ложны. Другими словами, он дает значение ложный тогда и только тогда, когда хотя бы один операнд истинен.

Таблица истинности

В таблица истинности из P  downarrow Q (также пишется как P NOR Q) как следует:

п Q { displaystyle P  downarrow Q}
Т Т F
Т F F
F Т F
F F Т

Логические эквивалентности

Логическое ИЛИ стрелка вниз является отрицанием дизъюнкции:

Характеристики

Логическое ИЛИ не обладает ни одним из пяти качеств (сохранение истины, сохранение ложности, линейный, монотонный, самодвойственный) требуется, чтобы он отсутствовал хотя бы в одном члене набора функционально полный операторы. Таким образом, набора, содержащего только NOR, достаточно в качестве полного набора.

Другие логические операции с точки зрения логического ИЛИ

NOR имеет интересную особенность, заключающуюся в том, что все остальные логические операторы могут быть выражены чересстрочными операциями NOR. логическая NAND Оператор также имеет такую ​​возможность.

Выражается в терминах NOR стрелка вниз, обычными операторами логики высказываний являются:

Смотрите также

  • Побитовое ИЛИ
  • Булева алгебра
  • Логический домен
  • Логическая функция
  • Функциональная полнота
  • Ворота NOR
  • Логика высказываний
  • Единственный достаточный оператор

Рекомендации

  1. ^ Ханс Кляйне Бюнинг; Теодор Леттманн (1999). Логика высказываний: дедукция и алгоритмы. Издательство Кембриджского университета. п. 2. ISBN  978-0-521-63017-7.
  2. ^ К.С. Пирс, CP 4.264
  3. ^ Холл, Элдон К. (1996), Путешествие на Луну: история навигационного компьютера Apollo, Рестон, Вирджиния, США: AIAA, п. 196, ISBN  1-56347-185-X

внешняя ссылка

  • СМИ, связанные с Логическое ИЛИ в Wikimedia Commons

Понравилась статья? Поделить с друзьями:
  • Логически как пишется
  • Лишен или лишон как пишется
  • Логин телеграмма как пишется
  • Лишал как пишется
  • Логике или логики как пишется