Aller au contenu

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
  1. On peut résumer l'opérateur xor par la proposition suivante :
    « Les cas qui donnent 0 sont les cas a = b. »

  2. Ou bien par la proposition suivante :
    « Les cas qui donnent 1 sont les cas a \neq b. »

  3. 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.