Vous pouvez utiliser les opérateurs logiques binaires pour effectuer une logique booléenne sur des bits individuels. C'est similaire à l'utilisation d'opérateurs logiques tels que ET, OU, et NON, mais au niveau du bit. Les similitudes entre les opérateurs logiques binaires et les opérateurs logiques ordinaires ne s'arrêtent pas là.
Il est possible d'évaluer des expressions booléennes avec des opérateurs binaires au lieu d'opérateurs logiques, mais cette utilisation excessive est généralement déconseillée.
À moins que vous n'ayez une bonne raison et que vous sachiez ce que vous faites, vous ne devriez utiliser les opérateurs logiques binaires que pour contrôler les bits. Il est trop facile de se tromper autrement. Dans la plupart des cas, vous passerez des entiers comme paramètres aux opérateurs logiques binaires.
L'opérateur binaire ET
L'opérateur binaire ET (&) effectue une conjonction logique sur les bits correspondants de ses opérandes. Pour chaque paire de bits occupant la même position dans les deux nombres, il renvoie un uniquement lorsque les deux bits sont activés :
a | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
---|---|---|---|---|---|---|---|---|
b | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
a & b | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
Le modèle binaire résultant est une intersection des paramètres de l'opérateur. Il a deux bits activés dans les positions où les deux opérandes sont à un. Dans tous les autres endroits, au moins une des entrées a un bit nul.
Arithmétiquement, cela équivaut à un produit de deux valeurs binaires. Vous pouvez calculer le ET binaire des nombres a et b en multipliant leurs bits à chaque indice i :
(a & b)i = ai x bi
Voici un eemple concret :
Expression | Valeur Binaire | Valeur Décimale |
---|---|---|
a |
100111002 | 15610 |
b |
1101002 | 5210 |
a & b |
101002 | 2010 |
Un multiplié par un donne un, mais tout ce qui est multiplié par zéro donne toujours zéro. Vous pouvez également prendre le minimum des deux bits de chaque paire. Remarquez que lorsque les opérandes ont des longueurs de bits inégales, le plus court est automatiquement complété par des zéros à gauche.
L'opérateur binaire OU
L'opérateur binaire OU (|) effectue une disjonction logique. Pour chaque paire de bits correspondante, il renvoie un si au moins l'un d'entre eux est activé :
a | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
---|---|---|---|---|---|---|---|---|
b | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
a | b | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
Le modèle binaire résultant est une union des paramètres de l'opérateur. Cinq bits sont activés lorsque l'un ou l'autre des opérandes est à un. Seule une combinaison de deux zéros donne un zéro dans la sortie finale.
L'arithmétique sous-jacente est une combinaison d'une somme et d'un produit des valeurs des bits. Pour calculer le OU binaire des nombres a et b, vous devez appliquer la formule suivante à leurs bits à chaque indice i :
(a | b)i = ai + bi - (ai x bi)
Voici un exemple palpable :
Expression | Valeur Binaire | Valeur Décimale |
---|---|---|
a |
100111002 | 15610 |
b |
1101002 | 5210 |
a | b |
101111002 | 18810 |
C'est presque comme une somme de deux bits mais bridée à l'extrémité supérieure de sorte qu'elle ne dépasse jamais la valeur de un. Vous pourriez également prendre le maximum des deux bits de chaque paire pour obtenir le même résultat.