Le ou exclusif☘
Par définition, l'opérateur ou est inclusif, c'est-à-dire a \; ou \; b renvoie 1 :
- lorsque a vaut 1,
- lorsque b vaut 1,
- lorsque les deux valent 1.
Il existe aussi le « ou exclusif », c'est-à-dire un « ou » qui ne renvoie pas 1 lorsque les deux entrées sont égales à 1.
Pour distinguer le « ou exclusif » du « ou inclusif », on peut noter le « ou exclusif » sous la forme oux. Il est toutefois plus usuel d'utiliser le nom anglais xor (eXclusif OR).
La fonction xor()☘
La fonction xor() est une fonction de \mathbb{B}\times\mathbb{B} dans \mathbb{B} définie par:
- xor(0 ; 0) = 0
- xor(0 ; 1) = 1
- xor(1 ; 0) = 1
- xor(1 ; 1) = 0
En d'autres termes, l'image est égale à 1 si et seulement si les deux entrées sont différentes.
L'opérateur xor☘
On utilise généralement xor comme un opérateur. Ainsi, au lieu d'écrire xor(a ; b), on utilise plutôt l'écriture a \; xor \; b qui est plus naturelle.
La table de vérité de l'opérateur xor est donc :
a | b | a xor b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Remarque
En python, la fonction xor() n'est pas définie. Si vous en avez besoin, il faut la programmer au préalable à l'aide des opérateurs usuels...
Compléments
-
On peut résumer l'opérateur xor par la proposition suivante :
« Les cas qui donnent 0 sont les cas a = b. » -
Ou bien par la proposition suivante :
« Les cas qui donnent 1 sont les cas a \neq b. » -
En interprétant 0 et 1 comme des entiers naturels, on peut également retenir la table du xor sous la forme :
- a \; xor \; b = (a \; ou \; b) - (a \; et \; b).
- ou a \; xor \; b = \max(a ; b) - \min(a ; b).
- ou a \; xor \; b = (a + b) \% 2.