Betreiber werden verwendet, um Operationen an Werten und Variablen durchzuführen. Dies sind die speziellen Symbole, die arithmetische und logische Berechnungen durchführen. Der Wert, mit dem der Operator arbeitet, wird als Operand bezeichnet.
Bitweise Python-Operatoren
Bitweise Operatoren von Python werden verwendet, um bitweise Berechnungen für ganze Zahlen durchzuführen. Die Ganzzahlen werden zuerst in Binärzahlen umgewandelt und dann werden Operationen an jedem Bit oder entsprechenden Bitpaar durchgeführt, daher der Name bitweise Operatoren. Das Ergebnis wird dann im Dezimalformat zurückgegeben.
Notiz: Bitweise Operatoren in Python funktionieren nur bei Ganzzahlen.
| OPERATOR | NAME | BESCHREIBUNG | SYNTAX |
---|---|---|---|---|
| & | Bitweises UND | Ergebnisbit 1, wenn beide Operandenbits 1 sind; sonst ergibt sich Bit 0. | x & y |
| | Bitweises ODER | Ergebnisbit 1, wenn eines der Operandenbits 1 ist; sonst ergibt sich Bit 0. | x | Und | |
^ | Bitweises XOR | Ergebnisbit 1, wenn eines der Operandenbits 1 ist, aber nicht beide, andernfalls Ergebnisbit 0. | x^y | |
| ~ | Bitweise NICHT | Invertiert einzelne Bits. | ~x |
>> | Bitweise Rechtsverschiebung | Der Wert des linken Operanden wird um die Anzahl der Bits nach rechts verschoben durch den rechten Operanden angegeben. | x>> | |
<< | Bitweise Linksverschiebung | Der Wert des linken Operanden wird um die Anzahl der Bits nach links verschoben durch den rechten Operanden angegeben. | x<< |
Lassen Sie uns jeden Operator einzeln verstehen.
Bitweiser UND-Operator
Der Python bitweises UND (&) Der Operator verwendet zwei Bitmuster gleicher Länge als Parameter. Die Zwei-Bit-Ganzzahlen werden verglichen. Wenn die Bits an den verglichenen Positionen der Bitmuster 1 sind, ist das resultierende Bit 1. Wenn nicht, ist es 0.
Beispiel: Nehmen Sie zwei Bitwerte X und Y, wobei X = 7= (111)2und Y = 4 = (100)2. Nehmen Sie bitweise und von X und Y
Notiz: Hier (111)2stellen eine Binärzahl dar.
a = 10 b = 4 # Print bitwise AND operation print('a & b =', a & b)>
Ausgabe
a & b = 0>
Bitweiser ODER-Operator
Der Python bitweises ODER (|) Der Operator verwendet zwei Bitdesigns gleicher Länge als Grenzen; Wenn die beiden Bits an der betrachteten Position 0 sind, ist das nächste Bit Null. Wenn nicht, ist es 1.
Beispiel: Nehmen Sie zwei Bitwerte X und Y, wobei X = 7= (111)2und Y = 4 = (100)2. Nehmen Sie das bitweise ODER von beiden X, Y
a = 10 b = 4 # Print bitwise OR operation print('a | b =', a | b)>
Ausgabe
a | b = 14>
Bitweiser XOR-Operator
Der Python Bitweiser XOR-Operator (^). Auch als Exklusiv-ODER-Operator bekannt, wird er verwendet, um die XOR-Operation an zwei Operanden durchzuführen. XOR steht für Exklusiv-ODER und gibt genau dann true zurück, wenn genau einer der Operanden wahr ist. Im Rahmen bitweiser Operationen vergleicht es entsprechende Bits zweier Operanden. Wenn die Bits unterschiedlich sind, wird 1 zurückgegeben. andernfalls wird 0 zurückgegeben.
Beispiel: Nehmen Sie zwei Bitwerte X und Y, wobei X = 7= (111)2 und Y = 4 = (100)2 . Nehmen Sie bitweise und sowohl X als auch Y
a = 10 b = 4 # print bitwise XOR operation print('a ^ b =', a ^ b)>
Ausgabe
a ^ b = 14>
Bitweiser NOT-Operator
Die vorangehenden drei bitweisen Operatoren sind binäre Operatoren, die für ihre Funktion zwei Operanden erfordern. Im Gegensatz zu den anderen arbeitet dieser Operator jedoch mit nur einem Operanden.
Der Python Bitwise Not (~) Operator arbeitet mit einem einzelnen Wert und gibt dessen Einerkomplement zurück. Dies bedeutet, dass alle Bits im Wert umgeschaltet werden, wobei 0 Bits in 1 und 1 Bits in 0 umgewandelt werden, was das Einserkomplement der Binärzahl ergibt.
csma und csma cd
Beispiel : Nehmen Sie zwei Bitwerte X und Y, wobei X = 5= (101)2 . Nehmen Sie das bitweise NICHT von X.
a = 10 b = 4 # Print bitwise NOT operation print('~a =', ~a)>
Ausgabe
~a = -11>
Bitweise Verschiebung
Diese Operatoren werden verwendet, um die Bits einer Zahl nach links oder rechts zu verschieben und so die Zahl jeweils mit zwei zu multiplizieren oder zu dividieren. Sie können verwendet werden, wenn wir eine Zahl mit zwei multiplizieren oder dividieren müssen.
Python Bitweise Rechtsverschiebung
Verschiebt die Bits der Zahl nach rechts und füllt als Ergebnis 0 auf den Leerstellen links auf (füllt 1 im Fall einer negativen Zahl). Ähnlicher Effekt wie bei der Division der Zahl mit einer Zweierpotenz.
Example 1: a = 10 = 0000 1010 (Binary) a>> 1 = 0000 0101 = 5 Beispiel 2: a = -10 = 1111 0110 (Binär) 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)>
Ausgabe
a>> 1 = 5 b>> 1 = -5>
Python Bitweise Linksverschiebung
Verschiebt die Bits der Zahl nach links und füllt dadurch die Lücken rechts mit 0 auf. Ähnlicher Effekt wie bei der Multiplikation der Zahl mit einer Zweierpotenz.
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)>
Ausgabe:
a << 1 = 10 b << 1 = -20>
Bitweise Operatorüberladung
Überlastung des Bedieners bedeutet, eine erweiterte Bedeutung zu geben, die über ihre vordefinierte operative Bedeutung hinausgeht. Beispielsweise wird der Operator + verwendet, um zwei Ganzzahlen zu addieren, zwei Zeichenfolgen zu verbinden und zwei Listen zusammenzuführen. Dies ist erreichbar, weil der Operator „+“ durch die Klassen int und str überladen wird. Möglicherweise ist Ihnen aufgefallen, dass derselbe integrierte Operator oder die gleiche integrierte Funktion bei Objekten unterschiedlicher Klassen ein unterschiedliches Verhalten zeigt. Dies wird aufgerufen Überlastung des Bedieners .
Unten finden Sie ein einfaches Beispiel für die Überladung bitweiser Operatoren.
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('Muss ein Objekt der Klasse Geek sein') def __invert__(self): print('Operator überladen umkehren') return ~self.value # Treibercode, wenn __name__ == '__main__': a = Geek(10) b = Geek(12) print(a & b) print(a | b) print(a ^ b) print(a<< b) print(a>> b) print(~a)>
Ausgabe:
And operator overloaded 8 Or operator overloaded 14 Xor operator overloaded 8 lshift operator overloaded 40960 rshift operator overloaded 8 Invert operator overloaded -11>
Notiz: Erfahren Sie mehr über die Überlastung von Bedienern klicken Sie hier .