Логические операторы. Часть 2
Часть раздела Fundamentals путешествия по C на Coddy — урок 22 из 63.
Логические операторы имеют специальную таблицу, называемую «таблицей истинности», которая показывает, что возвращает комбинация логических операторов.
Таблица истинности для оператора and (&&):
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Единственный способ получить 1 (истина) для оператора and (&&) — это если и a, и b равны 1 (истина)
Таблица истинности для оператора or (||):
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
В этом случае, чтобы получить результат 1 (true), либо a, либо b должны быть 1 (true).
Таблица истинности для оператора not (!):
| a | !a |
|---|---|
| 0 | 1 |
| 1 | 0 |
Здесь значение a инвертируется. Если a равно 0 (false), то !a равно 1 (true)
Задание
ЛегкоВам необходимо присвоить целые значения переменным b1 и b2 так, чтобы b3 приняло значение 1 (true) в выражении: int b3 = !((b1 + b2) > (b1 * b2));
Уделите время анализу условия и подумайте, какие значения сделают его истинным.
Шпаргалка
Таблицы истинности показывают результаты работы логических операторов:
Оператор И (&&):
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Возвращает 1 (true) только тогда, когда оба операнда равны 1 (true).
Оператор ИЛИ (||):
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Возвращает 1 (true), когда хотя бы один из операндов равен 1 (true).
Оператор НЕ (!):
| a | !a |
|---|---|
| 0 | 1 |
| 1 | 0 |
Инвертирует значение: 0 (false) становится 1 (true) и наоборот.
Попробуйте сами
#include <stdio.h>
int main() {
// Введите ваш код ниже
int b1 = ?;
int b2 = ?;
int b3 = !((b1 + b2) > (b1 * b2));
// Не изменяйте строку ниже
printf("b3 = %d\n", b3);
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
2Переменные
Типы данныхЦелые числаFloat и DoubleСимволыЛогический типКонстантыОсновы printfПравила именования переменныхПриведение типов. Часть 1Приведение типов. Часть 2Итоговое задание3Операторы
Арифметические операторыОператор остатка от деленияИнкремент и декрементОператоры присваиванияОператоры сравненияЛогические операторы. Часть 1Логические операторы. Часть 2Логические операторы. Часть 3Задание на повторение