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:
- 0 OR 1 = 1
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:
- "Si je tape Mr F****** OU si je l'insulte, je serais puni". (désolé pour l'exemple)
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:
- "J'ai une Aston Martin ou une Ferrari"
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 )