Menu
Coddy logo textTech

Логические операторы. Часть 2

Часть раздела Fundamentals путешествия по C на Coddy — урок 22 из 63.

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

Таблица истинности для оператора and (&&):

aba && b
000
010
100
111

Единственный способ получить 1 (истина) для оператора and (&&) — это если и a, и b равны 1 (истина)

Таблица истинности для оператора or (||):

aba || b
000
011
101
111

В этом случае, чтобы получить результат 1 (true), либо a, либо b должны быть 1 (true).

Таблица истинности для оператора not (!):

a!a
01
10

Здесь значение a инвертируется. Если a равно 0 (false), то !a равно 1 (true)

challenge icon

Задание

Легко

Вам необходимо присвоить целые значения переменным b1 и b2 так, чтобы b3 приняло значение 1 (true) в выражении: int b3 = !((b1 + b2) > (b1 * b2));

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

Шпаргалка

Таблицы истинности показывают результаты работы логических операторов:

Оператор И (&&):

aba && b
000
010
100
111

Возвращает 1 (true) только тогда, когда оба операнда равны 1 (true).

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

aba || b
000
011
101
111

Возвращает 1 (true), когда хотя бы один из операндов равен 1 (true).

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

a!a
01
10

Инвертирует значение: 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;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals