web-dev-qa-db-fra.com

True et False pour && logic et || Table logique

Table true/false pour le langage C

J'ai entendu parler d'un tableau vrai faux pour le langage C pour et && ou || est un peu mathématique pour lequel ils disent si vrai + vrai = vrai et faux + vrai = faux

Je suis un peu confus à ce sujet et j'ai essayé de faire des recherches, mais je n'ai rien trouvé à la table.

Je souhaite juste avoir ce tableau pour mes notes car je ferai plus en langage C

si quelqu'un pouvait m'amener sur le site ou sur des ressources où ils m'expliqueraient à ce sujet plus


J'ai modifié ma question initiale pour en faire une note pour ma propre étude. Merci @thiton pour les excellentes références et le reste pour une réponse/des ressources géniales.

Logical AND (&&)

false && false: false

false && true: false

true && false: false

true && true: true

Logique OR (||)

false || false: false

false || true: true

true || false: true

true || true: true

Logique NON (!)

!false: true

!true: false

42
Ali

Vous voulez probablement dire une table de vérité pour les opérateurs booléens, qui affiche le résultat des opérations booléennes habituelles (&&, ||). Ce tableau n’est pas spécifique à une langue, mais peut être trouvé, par exemple. ici .

11
thiton

Vous pensez à Algèbre booléenne

6
John Bode

Les valeurs de vérité peuvent être décrites à l'aide de Algèbre booléenne . L'article contient également des tables pour and et or. Cela devrait vous aider à démarrer ou à devenir encore plus confus.

5
pmr

Je pense que vous demandez Algèbre booléenne qui décrit le résultat de diverses opérations effectuées sur des variables booléennes. Il suffit de regarder l'article sur Wikipedia.

4
matekm

Recherchez-vous De Morgans Laws

2
NealB

Hai ALi Je pense que ce lien ci-dessous peut être utile pour u .

http://www.technologystudent.com/elec1/Dig3.htm

2

Je voudrais ajouter aux réponses déjà bonnes:

Les symboles '+', '*' et '-' sont parfois utilisés comme raccourcis dans certains manuels anciens pour les opérateurs OR, ∨ et AND, ∧ et NOT, ¬ logiques dans l'algèbre de Bool. En C/C++, bien sûr, nous utilisons "et", "&&" et "ou", "||" et pas","!".

Attention: "true + true" est évalué à 2 en C/C++ via une représentation interne de true et false sous la forme 1 et 0, et la conversion implicite vers int!

int main ()
{
  std::cout <<  "true - true = " << true - true << std::endl;
// This can be used as signum function:
// "(x > 0) - (x < 0)" evaluates to +1 or -1 for numbers.
  std::cout <<  "true - false = " << true - false << std::endl;
  std::cout <<  "false - true = " << false - true << std::endl;
  std::cout <<  "false - false = " << false - false << std::endl << std::endl;

  std::cout <<  "true + true = " << true + true << std::endl;
  std::cout <<  "true + false = " << true + false << std::endl;
  std::cout <<  "false + true = " << false + true << std::endl;
  std::cout <<  "false + false = " << false + false << std::endl << std::endl;

  std::cout <<  "true * true = " << true * true << std::endl;
  std::cout <<  "true * false = " << true * false << std::endl;
  std::cout <<  "false * true = " << false * true << std::endl;
  std::cout <<  "false * false = " << false * false << std::endl << std::endl;

  std::cout <<  "true / true = " << true / true << std::endl;
  //  std::cout <<  true / false << std::endl; ///-Wdiv-by-zero
  std::cout <<  "false / true = " << false / true << std::endl << std::endl;
  //  std::cout <<  false / false << std::endl << std::endl; ///-Wdiv-by-zero

  std::cout <<  "(true || true) = " << (true || true) << std::endl;
  std::cout <<  "(true || false) = " << (true || false) << std::endl;
  std::cout <<  "(false || true) = " << (false || true) << std::endl;
  std::cout <<  "(false || false) = " << (false || false) << std::endl << std::endl;

  std::cout <<  "(true && true) = " << (true && true) << std::endl;
  std::cout <<  "(true && false) = " << (true && false) << std::endl;
  std::cout <<  "(false && true) = " << (false && true) << std::endl;
  std::cout <<  "(false && false) = " << (false && false) << std::endl << std::endl;

}

rendements:

true - true = 0
true - false = 1
false - true = -1
false - false = 0

true + true = 2
true + false = 1
false + true = 1
false + false = 0

true * true = 1
true * false = 0
false * true = 0
false * false = 0

true / true = 1
false / true = 0

(true || true) = 1
(true || false) = 1
(false || true) = 1
(false || false) = 0

(true && true) = 1
(true && false) = 0
(false && true) = 0
(false && false) = 0
0
M. D. H.