Mandragor


Algèbre de boole

Opérations logiques

Une opération logique c'est une opération qui à partir de deux opérandes booléens (à l'exception de l'opération booléenne NON) va renvoyer un résultat booléen. Prenons l'exemple de l'opération logique OR (= OU pour les francophones). On aura:

Réaliser une opération logique, c'est comme faire une addition ou une multiplication, par conséquent a créé un mode de représentation de l'action de ces opérations: les tables de vérité.

 Table de vérité de OR

   OR |  0    1
  ---------------
   0  |  0    1
   1  |  1    1

C'est comme les tables de multiplication, vous prenez un élément de la colonne, vous faites un OR avec un élément de la ligne, et vous obtenez le résultat à l'intersection de la ligne et de la colonne. Le OR logique, en gros c'est le OU que l'on utiliserait dans l'expression:

En gros je serai puni si je l'insulte, si je le tape, ou LES DEUX. Toutefois le OU n'a pas tout a fait la même valeur dans la phrase:

Dans ce cas la, j'ai soit une Aston Martin, soit une Ferrari, mais pas les deux. Cela correspond à une deuxième opération logique, nommée XOR, le OU exclusif, dont voilà la table de vérité:

   XOR |  0    1
  ---------------
   0   |  0    1
   1   |  1    0
      

Il y a ensuite l'opération AND (et).

 AND |  0    1
---------------
 0   |  0    0
 1   |  0    1

L'opération AND a pour résultat 1 uniquement si ses deux opérandes valent 1.

Reste l'opération NOT (NON) qui, elle, n'a qu'un opérande. C'est pas bien compliqué, si cet opérande vaut 0 le résultat sera 1, si il vaut 1 le résultat vaudra 0.

   NOT |  0  1
  -------------
       |  1  0

Dernière chose dont je dois parler avant d'entamer la pratique: les opérations bits à bits. Dans ce cas on n'aura plus deux opérandes binaires, mais deux opérandes quelconques. Par exemples si je fait C = A OR B, et que A et B sont des words, alors le bit 0 de C sera le résultat du OR du bit 0 de A avec le bit 0 de B, le bit 1 de C sera le résultat du OR du bit 1 de A avec le bit 1 de B, et ainsi de suite.. Prenons un rapide exemple, par exemple faisons un OR entre notre 143 de tout à l'heure et, allez, 101.

   0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1   (143)
OR 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1   (101 = 64 + 32 + 4 + 1)

=  0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1   (= 1+4+8+32+64+128 = 237 )