Quelques fonctions logiques importantes⚓︎
En dehors des fonctions ET, OU et NON déjà vues, qui permettent de construire toutes les fonctions logiques, il y a quelques autres fonctions logiques souvent utilisées. Nous pouvons citer par exemple :
- les fonctions ET et OU appliquées à plus de deux paramètres, par exemple : a ET b ET c = (a ET b) ET c ;
- la fonction NON ET, en anglais NAND : a NAND b revient à NON(a ET b) donc à a . b ;
- la fonction NON OU, en anglais NOR : a NOR b revient à NON(a OU b) donc à a + b ;
- la fonction OU EXCLUSIF, en anglais XOR : a XOR b est vrai seulement si seul l'un des deux (soit a, soit b) est vrai, elle est parfois notée a ⊕ b.
Universalité de NAND
La fonction logique NON ET (NAND) est universelle : elle peut engendrer toutes les autres fonctions logiques et permet donc la création de circuits intégrés complexes (la fonction NON OU est aussi universelle).
Exercice
Complétez les tables de vérités des fonctions NAND, NOR et XOR :
a | b | a NAND b = a . b |
---|---|---|
0 | 0 | |
0 | 1 | |
1 | 0 | |
1 | 1 |
a | b | a NOR b = a + b |
---|---|---|
0 | 0 | |
0 | 1 | |
1 | 0 | |
1 | 1 |
a | b | a XOR b = a ⊕ b |
---|---|---|
0 | 0 | |
0 | 1 | |
1 | 0 | |
1 | 1 |
Exercice
- Ouvrez le fichier booleens.py sur lequel vous avez travaillé en début de chapitre. Écrivez une fonction op_XOR qui utilise la table de vérité de XOR.
- Écrivez une autre fonction Python, disons op_XOR2, qui utilise les fonctions op_ET, op_OU et op_NON.
- Ecrivez une expression booléenne (avec ET, OU ou NON) décrivant XOR.
- Construisez et testez un circuit correspondant à XOR :
{
"width":700,
"height":400,
"showToolbox":true,
"toolbox":[
{"type":"DC"},
{"type":"LED"},
{"type":"Toggle"},
{"type":"NOT"},
{"type":"AND"},
{"type":"OR"}
]
}