Python Bitwise Operators

Python Bitwise Operators werden verwendet, um Bitwise Berechnungen an Ganzzahlen durchzuführen. Die Ganzzahlen werden in das Binärformat konvertiert und dann werden Operationen Bit für Bit durchgeführt, daher der Name Bitwise Operators. Python Bitwise Operators funktionieren nur mit Ganzzahlen und der finale Output wird im Dezimalformat zurückgegeben. Python Bitwise Operators werden auch binäre Operators genannt.

Arten von Python Bitwisen Operators

Es gibt 6 Bitwise Operators in Python. Die folgende Tabelle bietet kurze Details über sie.

Bitwise Operator Description Simple Example
& Bitwise AND Operator 10 & 7 = 2
| Bitwise OR Operator 10 | 7 = 15
^ Bitwise XOR Operator 10 ^ 7 = 13
~ Bitwise Ones’ Compliment Operator ~10 = -11
<< Bitwise Left Shift operator 10<<2 = 40
>> Bitwise Right Shift Operator 10>>1 = 5

Lassen Sie uns diese Operators einzeln anschauen und verstehen, wie sie funktionieren.

1. Bitwiser AND-Operator

Der Bitwise AND-Operator in Python gibt 1 zurück, wenn beide Bits 1 sind, andernfalls 0.

2. Bitwiser OR-Operator

Der Bitwise OR-Operator in Python gibt 1 zurück, wenn eines der Bits 1 ist. Sind beide Bits 0, dann gibt er 0 zurück.

3. Bitwiser XOR-Operator

Der Bitwise XOR-Operator in Python gibt 1 zurück, wenn eines der Bits 0 und das andere Bit 1 ist. Sind beide Bits 0 oder 1, dann gibt er 0 zurück.

4. Bitwiser Ones’ Complement Operator

Der Ones’ Complement eines Zahlenwertes ‘A’ in Python ist gleich -(A+1).

>>> ~10
-11
>>> ~-10
9
>>>

5. Bitwiser Left Shift Operator

Der Bitwise Left Shift Operator in Python verschiebt die Bits des linken Operanden nach links um die angegebene Anzahl von Malen des rechten Operanden. Einfach ausgedrückt wird die Binärzahl am Ende mit 0en ergänzt.

6. Bitwiser Right Shift Operator

Der Bitwise Right Shift Operator in Python ist genau das Gegenteil des Left Shift Operators. Die Bits des linken Operanden werden nach rechts um die angegebene Anzahl von Malen verschoben. Einfach ausgedrückt werden die rechten Bits entfernt.

Python Bitwise Operator-Überladung

Python unterstützt Operator-Überladung. Es gibt verschiedene Methoden, die wir implementieren können, um Bitwise Operators für unsere benutzerdefinierten Objekte zu unterstützen.

Bitwise Operator Method to Implement
& __and__(self, other)
^ __xor__(self, other)
~ __invert__(self)
<< __lshift__(self, other)
>> __rshift__(self, other)

Hier ist ein Beispiel für eine Operator-Überladung eines Bitwisen Operators für unser benutzerdefiniertes Objekt.

class Data:
    id = 0

    def __init__(self, i):
        self.id = i

    def __and__(self, other):
        print('Bitwise AND operator overloaded')
        if isinstance(other, Data):
            return Data(self.id & other.id)
        else:
            raise ValueError('Argument must be object of Data')

    def __or__(self, other):
        print('Bitwise OR operator overloaded')
        if isinstance(other, Data):
            return Data(self.id | other.id)
        else:
            raise ValueError('Argument must be object of Data')

    def __xor__(self, other):
        print('Bitwise XOR operator overloaded')
        if isinstance(other, Data):
            return Data(self.id ^ other.id)
        else:
            raise ValueError('Argument must be object of Data')

    def __lshift__(self, other):
        print('Bitwise Left Shift operator overloaded')
        if isinstance(other, int):
            return Data(self.id << other) else: raise ValueError('Argument must be integer') def __rshift__(self, other): print('Bitwise Right Shift operator overloaded') if isinstance(other, int): return Data(self.id >> other)
        else:
            raise ValueError('Argument must be integer')

    def __invert__(self):
        print('Bitwise Ones Complement operator overloaded')
        return Data(~self.id)

    def __str__(self):
        return f'Data[{self.id}]'


d1 = Data(10)
d2 = Data(7)

print(f'd1&d2 = {d1&d2}')
print(f'd1|d2 = {d1|d2}')
print(f'd1^d2 = {d1^d2}')
print(f'd1<<2 = {d1<<2}') print(f'd1>>2 = {d1>>2}')
print(f'~d1 = {~d1}')

Output:

Bitwise AND operator overloaded
d1&d2 = Data[2]
Bitwise OR operator overloaded
d1|d2 = Data[15]
Bitwise XOR operator overloaded
d1^d2 = Data[13]
Bitwise Left Shift operator overloaded
d1<<2 = Data[40] Bitwise Right Shift operator overloaded d1>>2 = Data[2]
Bitwise Ones Complement operator overloaded
~d1 = Data[-11]

Zusammenfassung

Python Bitwise Operators werden meistens in mathematischen Berechnungen verwendet. Wir können spezifische Methoden implementieren, um Bitwise Operators auch für unsere benutzerdefinierten Klassenimplementierungen zu unterstützen.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren:

centron Managed Cloud Hosting in Deutschland

Wie berechnet man den BLEU-Score in Python?

Python
Wie berechnet man den BLEU-Score in Python? Der BLEU-Score in Python ist eine Metrik, die die Güte von maschinellen Übersetzungsmodellen misst. Ursprünglich wurde er nur für Übersetzungsmodelle entwickelt, wird jedoch…