русское название | английское название | цифровое обозначение |
---|---|---|
ложь | false | 0 |
истина | true | 1 |
русское название | английское название | математическое обозначение | знак операции в языке Си | количество аргументов (арность) | определение: результат операции |
---|---|---|---|---|---|
не, отрицание | not | ¬, ‾, - | ! | 1 (унарная) | истина, когда аргумент — ложь; ложь, когда аргумент — истина |
и, конъюнкция, логическое умножение | and, conjunction | ∧, ∙ | && | 2 (бинарная) | истина тогда и только тогда, когда оба аргумента — истина |
или (включающее или), дизъюнкция, логическое сложение | or (inclusive or), disjunction | ∨, + | || | 2 (бинарная) | ложь тогда и только тогда, когда оба аргумента — ложь |
Поскольку логических значений — конечное число (а именно: 2), то их можно перебрать все явно.
Определение логических операций можно дать в виде таблицы, где перебираются все возможные сочетания значений аргументов и для каждого сочетания значений приводится результат применения операции.
Сочетания значений принято перебирать в порядке, соответствующем расположению в порядке возрастания двоичных чисел, составленных из цифровой записи значений операндов. Например, для 1-го значения: 0, 1; для 2-х значений: 00, 01, 10, 11, для 3-х значений: 000, 001, 010, 011, 100, 101, 110, 111; аналогично для большего количества значений.
"не"
x | ¬x |
---|---|
0 | 1 |
1 | 0 |
x | y | x ∙ y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
x | y | x ∨ y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
- Achtung!!!
В математической логике используются также другие операции, например "исключающее или" ("сложение по модулю 2"), но прямого аналога в языке Си для этой операции нет.
Логическому значению "ложь" ("false") в языке Си соответствует 0, значению "истина" ("true") 1. Результатом вычисления логических выражений и сравнений является значение 0 или 1 типа int.
В качестве аргументов логических выражений в языке Си могут использоваться любые выражения. Использование выражения в качестве аргумента логического выражения эквивалентно использованию результата сравнения этого выражения на неравенство с нулём.
Например:
x && y
эквивалентно
x != 0 && y != 0
Иначе говоря, при использовании в качестве операнда логической операции, любое ненулевое значение (в том числе, например, -1) трактуется как истина и только нулевое как ложь.
Приоритет операций:
- Приоритет отрицания (как унарной операции) выше, чем других операций.
- Приоритет логического "и" (как логического умножения) выше, чем приоритет логического "или" (как логического сложения).
- Приоритет логических операций ниже, чем операций сравнения.
выражение
t && x > y + 1
эквивалентно
t && (x > (y + 1))