Operatörer används för att utföra operationer på värden och variabler. Dessa är de speciella symbolerna som utför aritmetiska och logiska beräkningar. Värdet som operatören använder kallas Operand.
Python Bitwise Operators
Python bitvisa operatorer används för att utföra bitvisa beräkningar på heltal. Heltalen omvandlas först till binära och sedan utförs operationer på varje bit eller motsvarande bitpar, därav namnet bitvisa operatorer. Resultatet returneras sedan i decimalformat.
Notera: Python bitvisa operatorer fungerar bara på heltal.
| OPERATÖR | NAMN | BESKRIVNING | SYNTAX |
|---|---|---|---|---|
| | & | Bitvis OCH | Resultat bit 1, om båda operandbitarna är 1; annars resulterar biten 0. | x & y |
| | | Bitvis ELLER | Resultat bit 1, om någon av operandbitarna är 1; annars resulterar biten 0. | x | och | |
| ^ | Bitvis XOR | Resultatbit 1, om någon av operandbitarna är 1 men inte båda, resulterar annars bit 0. | x^y | |
| | ~ | Bitvis INTE | Inverterar enskilda bitar. | ~x |
| >> | Bitvis högerväxling | Den vänstra operandens värde flyttas åt höger med antalet bitar specificeras av den högra operanden. | x>> | |
| << | Bitvis vänsterväxling | Den vänstra operandens värde flyttas åt vänster med antalet bitar specificeras av den högra operanden. | x<< |
Låt oss förstå varje operatör en efter en.
Bitvis OCH Operatör
De Python bitvis OCH (&) operatorn tar två lika långa bitmönster som parametrar. Tvåbitars heltal jämförs. Om bitarna i de jämförda positionerna för bitmönstren är 1, är den resulterande biten 1. Om inte är den 0.
rensa cache npm
Exempel: Ta två bitvärden X och Y, där X = 7= (111)2och Y = 4 = (100)2. Ta Bitwise och av både X & y
Notera: Här, (111)2representerar binärt tal.

a = 10 b = 4 # Print bitwise AND operation print('a & b =', a & b)> Produktion
a & b = 0>
Bitvis ELLER Operator
De Python bitvis ELLER (|) Operatören tar två ekvivalenta längdbitdesigner som gränser; om de två bitarna i den betraktade positionen är 0, är nästa bit noll. Om inte är det 1.
Exempel: Ta två bitvärden X och Y, där X = 7= (111)2och Y = 4 = (100)2. Ta bitvis ELLER av både X, Y

a = 10 b = 4 # Print bitwise OR operation print('a | b =', a | b)> Produktion
a | b = 14>
Bitvis XOR-operatör
De Python Bitwise XOR (^) Operator även känd som den exklusiva OR-operatorn, används för att utföra XOR-operationen på två operander. XOR står för exklusiv eller, och det returnerar sant om och endast om exakt en av operanderna är sann. I samband med bitvisa operationer jämför den motsvarande bitar av två operander. Om bitarna är olika returnerar det 1; annars returnerar den 0.
Exempel: Ta två bitvärden X och Y, där X = 7= (111)2 och Y = 4 = (100)2 . Ta Bitwise och av både X & Y

a = 10 b = 4 # print bitwise XOR operation print('a ^ b =', a ^ b)> Produktion
a ^ b = 14>
Bitvis INTE Operatör
De föregående tre bitvisa operatorerna är binära operatorer, vilket kräver två operander för att fungera. Men till skillnad från de andra, arbetar denna operatör med endast en operand.
De Python Bitvis Inte (~) Operator arbetar med ett enda värde och returnerar dess komplement. Detta innebär att den växlar alla bitar i värdet, omvandlar 0 bitar till 1 och 1 bitar till 0, vilket resulterar i ens komplement till det binära talet.
Exempel : Ta två bitvärden X och Y, där X = 5= (101)2 . Ta bitvis INTE av X.

a = 10 b = 4 # Print bitwise NOT operation print('~a =', ~a)> Produktion
~a = -11>
Bitvis Shift
Dessa operatorer används för att flytta bitarna av ett tal åt vänster eller höger och därigenom multiplicera eller dividera talet med två respektive. De kan användas när vi ska multiplicera eller dividera ett tal med två.
Pytonorm Bitvis högerväxling
Flyttar bitarna i talet åt höger och fyller 0 på tomrum till vänster (fyller 1 om det är ett negativt tal) som ett resultat. Liknande effekt som att dividera talet med någon potens av två.
Example 1: a = 10 = 0000 1010 (Binary) a>> 1 = 0000 0101 = 5 Exempel 2: a = -10 = 1111 0110 (Binär) a>> 1 = 1111 1011 = -5>Pytonorm
a = 10 b = -10 # print bitwise right shift operator print('a>> 1 =', a>> 1) print('b>> 1 =', b>> 1)> Produktion
a>> 1 = 5 b>> 1 = -5>
Pytonorm Vänsterväxling bitvis
Flyttar bitarna av numret åt vänster och fyller 0 på tomrum åt höger som ett resultat. Liknande effekt som att multiplicera talet med någon potens av två.
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>Pytonorm
a = 5 b = -10 # print bitwise left shift operator print('a << 1 =', a << 1) print('b << 1 =', b << 1)> Produktion:
a << 1 = 10 b << 1 = -20>
Bitvis operatörsöverbelastning
Operatör överbelastning innebär att ge utökad betydelse utöver deras fördefinierade operativa betydelse. Operator + används till exempel för att lägga till två heltal samt för att sammanfoga två strängar och slå samman två listor. Det är möjligt eftersom '+'-operatorn är överbelastad av int-klass och str-klass. Du kanske har märkt att samma inbyggda operator eller funktion visar olika beteende för objekt av olika klasser, detta kallas Operatör överbelastning .
pyspark handledning
Nedan är ett enkelt exempel på Bitwise-operatörsöverbelastning.
Pytonorm # 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('Måste vara ett objekt av klassen Geek') def __invert__(self): print('Inverteringsoperator överbelastad') returnera ~self.value # Drivers code if __name__ == '__main__': a = Nörd(10) b = Nörd(12) print(a & b) print(a | b) print(a ^ b) print(a)<< b) print(a>> b) print(~a)> Produktion:
And operator overloaded 8 Or operator overloaded 14 Xor operator overloaded 8 lshift operator overloaded 40960 rshift operator overloaded 8 Invert operator overloaded -11>
Notera: För att veta mer om operatörsöverbelastning Klicka här .