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