Exemple d'opérateurs bit à bit Python

Les opérateurs Bitwise suivants sont pris en charge par le langage Python.

Opérateur La description Exemple
& Binaire ET L'opérateur copie un peu le résultat s'il existe dans les deux opérandes (a & b) (signifie 0000 1100)
| OU binaire Il copie un peu s'il existe dans l'un ou l'autre des opérandes. (a | b) = 61 (signifie 0011 1101)
^ XOR binaire Il copie le bit s'il est défini dans un opérande mais pas dans les deux. (a ^ b) = 49 (signifie 0011 0001)
~ Complément binaire Il est unaire et a pour effet de «retourner» les bits. (~ a) = -61 (signifie 1100 0011 sous forme de complément à 2 en raison d'un nombre binaire signé.
<< Décalage binaire à gauche La valeur des opérandes de gauche est déplacée vers la gauche du nombre de bits spécifié par l'opérande de droite. a << 2 = 240 (signifie 1111 0000)
>> Décalage binaire à droite La valeur des opérandes de gauche est déplacée vers la droite du nombre de bits spécifié par l'opérande de droite. a >> 2 = 15 (signifie 0000 1111)

Exemple

#!/usr/bin/python

a = 60            # 60 = 0011 1100 
b = 13            # 13 = 0000 1101 
c = 0

c = a & b;        # 12 = 0000 1100
print "Line 1 - Value of c is ", c

c = a | b;        # 61 = 0011 1101 
print "Line 2 - Value of c is ", c

c = a ^ b;        # 49 = 0011 0001
print "Line 3 - Value of c is ", c

c = ~a;           # -61 = 1100 0011
print "Line 4 - Value of c is ", c

c = a << 2;       # 240 = 1111 0000
print "Line 5 - Value of c is ", c

c = a >> 2;       # 15 = 0000 1111
print "Line 6 - Value of c is ", c

Lorsque vous exécutez le programme ci-dessus, il produit le résultat suivant -

Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15