logo

Opérateurs au niveau du bit Python

Les opérateurs sont utilisés pour effectuer des opérations sur des valeurs et des variables. Ce sont les symboles spéciaux qui effectuent des calculs arithmétiques et logiques. La valeur sur laquelle l'opérateur opère est connue sous le nom d'opérande.

Opérateurs au niveau du bit Python

Les opérateurs au niveau du bit Python sont utilisés pour effectuer des calculs au niveau du bit sur des entiers. Les entiers sont d'abord convertis en binaires, puis des opérations sont effectuées sur chaque bit ou paire de bits correspondante, d'où le nom d'opérateur au niveau du bit. Le résultat est ensuite renvoyé au format décimal.



Note: Les opérateurs au niveau du bit Python ne fonctionnent que sur des entiers.


OPÉRATEURNOMDESCRIPTIONSYNTAXE

Opérateur ET au niveau du bit



&ET au niveau du bitRésultat bit 1, si les deux bits d'opérande sont 1 ; sinon, le résultat est le bit 0.x et y

Opérateur OU au niveau du bit

|OU au niveau du bitBit de résultat 1, si l'un des bits de l'opérande est 1 ; sinon, le résultat est le bit 0.X | et

Opérateur XOR au niveau du bit

^XOR au niveau du bitRésultat bit 1, si l'un des bits de l'opérande est 1 mais pas les deux, sinon le résultat est le bit 0.x ^ y

Opérateur NOT au niveau du bit



~PAS au niveau du bit

Inverse les bits individuels.

différence entre le lion et le tigre
~x

Python Décalage droit au niveau du bit

>>Décalage à droite au niveau du bit

La valeur de l'opérande de gauche est déplacée vers la droite du nombre de bits

spécifié par l'opérande de droite.

x>>

Python Décalage gauche au niveau du bit

nœud de liste en Java
<<Décalage vers la gauche au niveau du bit

La valeur de l’opérande de gauche est déplacée vers la gauche du nombre de bits

spécifié par l'opérande de droite.

x<<

Comprenons chaque opérateur un par un.

Opérateur ET au niveau du bit

Le Python au niveau du bit ET (&) L’opérateur prend deux modèles binaires de longueur égale comme paramètres. Les entiers sur deux bits sont comparés. Si les bits dans les positions comparées des configurations binaires sont 1, alors le bit résultant est 1. Sinon, il est 0.

Exemple: Prenez deux valeurs de bits X et Y, où X = 7= (111)2et Y = 4 = (100)2. Prenez Bitwise et X & y

Note: Ici, (111)2représente un nombre binaire.

Python
a = 10 b = 4 # Print bitwise AND operation print('a & b =', a & b)>

Sortir

a & b = 0>

Opérateur OU au niveau du bit

Le Python OU au niveau du bit (|) L'opérateur prend deux conceptions de bits de longueur équivalente comme limites ; si les deux bits dans la position regardée sont 0, le bit suivant est zéro. Sinon, c'est 1.

Exemple: Prenez deux valeurs de bits X et Y, où X = 7= (111)2et Y = 4 = (100)2. Prenez le OU au niveau du bit des deux X, Y

Python
a = 10 b = 4 # Print bitwise OR operation print('a | b =', a | b)>

Sortir

a | b = 14>

Opérateur XOR au niveau du bit

Le Opérateur Python XOR au niveau du bit (^) également connu sous le nom d'opérateur OU exclusif, est utilisé pour effectuer l'opération XOR sur deux opérandes. XOR signifie exclusif ou, et il renvoie vrai si et seulement si exactement l'un des opérandes est vrai. Dans le contexte d'opérations au niveau du bit, il compare les bits correspondants de deux opérandes. Si les bits sont différents, il renvoie 1 ; sinon, il renvoie 0.

Exemple: Prenez deux valeurs binaires X et Y, où X = 7= (111)2 et Y = 4 = (100)2 . Prenez Bitwise et X & Y

Python
a = 10 b = 4 # print bitwise XOR operation print('a ^ b =', a ^ b)>

Sortir

RJ12 contre RJ11
a ^ b = 14>

Opérateur NOT au niveau du bit

Les trois opérateurs binaires précédents sont des opérateurs binaires, nécessitant deux opérandes pour fonctionner. Cependant, contrairement aux autres, cet opérateur fonctionne avec un seul opérande.

Le Opérateur Python Bitwise Not (~) fonctionne avec une valeur unique et renvoie son complément. Cela signifie qu'il bascule tous les bits de la valeur, transformant 0 bits en 1 et 1 bits en 0, ce qui donne le complément à un du nombre binaire.

Exemple : Prenez deux valeurs de bits X et Y, où X = 5= (101)2 . Prenez Bitwise PAS de X.

Python
a = 10 b = 4 # Print bitwise NOT operation print('~a =', ~a)>

Sortir

~a = -11>

Décalage au niveau du bit

Ces opérateurs sont utilisés pour décaler les bits d'un nombre vers la gauche ou la droite, multipliant ou divisant ainsi le nombre par deux respectivement. Ils peuvent être utilisés lorsque nous devons multiplier ou diviser un nombre par deux.

Python Décalage vers la droite au niveau du bit

En conséquence, décale les bits du nombre vers la droite et remplit 0 sur les vides à gauche (remplit 1 dans le cas d'un nombre négatif). Effet similaire à celui de la division d'un nombre avec une puissance de deux.

  Example 1:   a = 10 = 0000 1010 (Binary) a>> 1 = 0000 0101 = 5 Exemple 2 : a = -10 = 1111 0110 (binaire) a>> 1 = 1111 1011 = -5>
Python
a = 10 b = -10 # print bitwise right shift operator print('a>> 1 =', a>> 1) print('b>> 1 =', b>> 1)>

Sortir

a>> 1 = 5b>> 1 = -5>

Python Décalage gauche au niveau du bit

Décale les bits du nombre vers la gauche et remplit ainsi les vides à droite. Effet similaire à celui de la multiplication du nombre avec une puissance de deux.

  Example 1:   a = 5 = 0000 0101 (Binary) a << 1 = 0000 1010 = 10 a << 2 = 0001 0100 = 20   Example 2:   b = -10 = 1111 0110 (Binary) b << 1 = 1110 1100 = -20 b << 2 = 1101 1000 = -40>
Python
a = 5 b = -10 # print bitwise left shift operator print('a << 1 =', a << 1) print('b << 1 =', b << 1)>

Sortir:

a << 1 = 10 b << 1 = -20>

Surcharge d'opérateur au niveau du bit

Surcharge de l'opérateur signifie donner une signification étendue au-delà de leur signification opérationnelle prédéfinie. Par exemple, l'opérateur + est utilisé pour ajouter deux entiers, joindre deux chaînes et fusionner deux listes. Ceci est réalisable car l’opérateur « + » est surchargé par la classe int et la classe str. Vous avez peut-être remarqué que le même opérateur ou fonction intégré affiche un comportement différent pour les objets de différentes classes, c'est ce qu'on appelle Surcharge de l'opérateur .

dialecte d'hibernation

Vous trouverez ci-dessous un exemple simple de surcharge d'opérateur Bitwise.

Python
# Python program to demonstrate # operator overloading class Geek(): def __init__(self, value): self.value = value def __and__(self, obj): print('And operator overloaded') if isinstance(obj, Geek): return self.value & obj.value else: raise ValueError('Must be a object of class Geek') def __or__(self, obj): print('Or operator overloaded') if isinstance(obj, Geek): return self.value | obj.value else: raise ValueError('Must be a object of class Geek') def __xor__(self, obj): print('Xor operator overloaded') if isinstance(obj, Geek): return self.value ^ obj.value else: raise ValueError('Must be a object of class Geek') def __lshift__(self, obj): print('lshift operator overloaded') if isinstance(obj, Geek): return self.value << obj.value else: raise ValueError('Must be a object of class Geek') def __rshift__(self, obj): print('rshift operator overloaded') if isinstance(obj, Geek): return self.value>> obj.value else: raise ValueError('Doit être un objet de classe Geek') def __invert__(self): print('Inverser l'opérateur surchargé') return ~self.value # Code du pilote si __name__ == '__main__' : a = Geek(10) b = Geek(12) print(a & b) print(a | b) print(a ^ b) print(a<< b) print(a>> b) imprimer(~a)>

Sortir:

And operator overloaded 8 Or operator overloaded 14 Xor operator overloaded 8 lshift operator overloaded 40960 rshift operator overloaded 8 Invert operator overloaded -11>

Note: Pour en savoir plus sur la surcharge des opérateurs Cliquez ici .