Les opérateurs binaires en Python

Par : TutorialsGrey, le 14 Janvier 2022

Les ordinateurs sont capables de stocker toutes sortes d'informations sous la forme d'un flux de chiffres binaires appelés bits. Que vous travailliez avec du texte, des images ou des vidéos, ils se résument tous à des uns et des zéros. Les opérateurs binaires Python vous permettent de manipuler ces bits de données individuels au niveau le plus élémentaire.

Vous pouvez utiliser les opérateurs binaires pour mettre en œuvre des algorithmes tels que la compression, le cryptage et la détection d'erreurs, ainsi que pour contrôler des périphériques physiques dans votre projet Raspberry Pi ou ailleurs.

Dans cet article, vous apprendrez à utiliser les opérateurs binaires Python pour manipuler des bits de données.

 

Les opérateurs binaires simples

Le langage Python est fourni avec plusieurs types d'opérateurs différents, tels que les opérateurs arithmétiques, logiques et de comparaison. Vous pouvez les considérer comme des fonctions qui tirent parti d'une syntaxe préfixe et infixe plus compacte.

Remarque : Python n'inclut pas les opérateurs postfixés tels que les opérateurs d'incrémentation (i++) ou de décrémentation (i--) disponibles en langage C par exemple.

Les opérateurs binaires ont pratiquement la même apparence dans la plupart des langages de programmation. Les opérateurs binaires traitent les opérandes comme des séquences de chiffres binaires et opèrent sur eux bit par bit. Les opérateurs suivants sont pris en charge en Python :

Operateur Exemple Signification Résultat
& a & b ET binaire Chaque position de bit dans le résultat est le ET logique des bits dans la position correspondante des opérandes. (1 si les deux sont à 1, sinon 0.)
| a | b OR binaire Chaque position de bit dans le résultat est le OU logique des bits dans la position correspondante des opérandes. (1 si au moins l'un des opérandes est à 1, sinon 0.)
~ ~a négation ou NON binaire Chaque position de bit dans le résultat est la négation logique du bit dans la position correspondante de l'opérande. (1 si 0, 0 si 1.)
^ a ^ b XOR (OU exclusif) binaire Chaque position de bit dans le résultat est le XOR logique des bits dans la position correspondante des opérandes. (1 si les bits des opérandes sont différents, 0 s'ils sont identiques).
>> a >> n Décalage à droite de n bits Chaque bit est décalé de n bits vers la droite.
<< a << n Décalage à gauche de n bits Chaque bit est décalé de n places vers la droite.

Comme vous pouvez le constater, ils sont désignés par des symboles plutôt étranges au lieu de mots. Cela les fait ressortir en Python comme étant légèrement moins parlant que ce à quoi vous pourriez être habitué. Vous ne seriez probablement pas en mesure de comprendre leur signification en les regardant simplement.

Voici quelques exemples :

print('0b{:04b}'.format(0b1100 & 0b1010))

print('0b{:04b}'.format(0b1100 | 0b1010))

print('0b{:04b}'.format(0b1100 ^ 0b1010))

print('0b{:04b}'.format(0b1100 >> 2))

print('0b{:04b}'.format(0b0011 << 2))

L'exécution de l'extrait de code ci-dessus affiche le résultat suivant :

0b1000
0b1110
0b0110
0b0011
0b1100

 

Remarque : Si vous utilisez un autre langage de programmation comme le Java, vous remarquerez immédiatement qu'il manque à Python l'opérateur de décalage à droite non signé, représenté par trois signes plus grands que (>>>). Cela est dû à la façon dont Python représente les nombres entiers en interne. Puisque les entiers en Python peuvent avoir un nombre infini de bits, le bit de signe n'a pas de position fixe. En fait, il n'y a pas du tout de bit de signe en Python !

La plupart de ces opérateurs sont binaires, ce qui signifie qu'ils fonctionnent avec deux opérandes, généralement appelés opérande gauche et opérande droit. L'opérateur NON (~) est le seul opérateur unaire puisqu'il ne fonctionne qu'avec un seul opérande.

 

Les opérateurs binaires composés

Tous les opérateurs binaires ont un opérateur composé correspondant qui effectue une affectation augmentée :

Operateur Exemple Équivaut au
&= a &= b a = a & b
|= a |= b a = a | b
^= a ^= b a = a ^ b
<<= a <<= n a = a << n
>>= a >>= n a = a >> n

 

Ce sont des notations abrégées qui permettent de modifier l'opérande gauche.

Voilà tout ce qu'il y a à savoir sur la syntaxe des opérateurs binaire Python ! Vous êtes maintenant prêt à examiner de plus près chacun des opérateurs pour comprendre où ils sont le plus utiles et comment vous pouvez les utiliser.