Opérateurs logiques - Partie 2
Fait partie de la section Fundamentals du Journey C de Coddy — leçon 22 sur 63.
Les opérateurs logiques disposent d'un tableau spécial appelé « table de vérité » qui indique ce que renvoie la combinaison d'opérateurs logiques.
Table de vérité pour l'opérateur and (&&) :
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
La seule façon d'obtenir un 1 (vrai) pour l'opérateur and (&&) est si à la fois a et b sont 1 (vrai)
Table de vérité pour l'opérateur or (||) :
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Dans ce cas, pour obtenir un résultat 1 (vrai), soit a soit b doit être 1 (vrai).
Table de vérité pour l'opérateur not (!) :
| a | !a |
|---|---|
| 0 | 1 |
| 1 | 0 |
Ici, la valeur de a est inversée. Si a est 0 (faux) alors !a est 1 (vrai)
Défi
FacileVous devez assigner des valeurs entières aux variables b1 et b2 de sorte que b3 soit évalué à 1 (vrai) dans l'expression : int b3 = !((b1 + b2) > (b1 * b2));
Prenez un moment pour analyser la condition et réfléchir aux valeurs qui la rendraient vraie.
Aide-mémoire
Les tables de vérité montrent les résultats des opérateurs logiques :
Opérateur ET (&&) :
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Retourne 1 (vrai) uniquement lorsque les deux opérandes sont 1 (vrai).
Opérateur OU (||) :
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Retourne 1 (vrai) lorsqu'au moins l'un des opérandes est 1 (vrai).
Opérateur NON (!) :
| a | !a |
|---|---|
| 0 | 1 |
| 1 | 0 |
Inverse la valeur : 0 (faux) devient 1 (vrai) et vice versa.
Essayez vous-même
#include <stdio.h>
int main() {
// Tapez votre code ci-dessous
int b1 = ?;
int b2 = ?;
int b3 = !((b1 + b2) > (b1 * b2));
// Ne modifiez pas la ligne ci-dessous
printf("b3 = %d\n", b3);
return 0;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fundamentals
2Variables
Types de donnéesEntiersFloat - DoubleCaractèresBooléensConstantesLes bases de printfRègles de nommage des variablesType Casting Partie 1Type Casting Partie 2Défi récapitulatif3Opérateurs
Opérateurs arithmétiquesOpérateur moduloIncrémentation/DécrémentationOpérateurs d'affectationOpérateurs relationnelsOpérateurs logiques - Partie 1Opérateurs logiques - Partie 2Opérateurs logiques - Partie 3Défi récapitulatif