logo

Python Bitwise Operators

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ÖRNAMNBESKRIVNINGSYNTAX

Bitvis OCH-operator



&Bitvis OCHResultat bit 1, om båda operandbitarna är 1; annars resulterar biten 0.x & y

Bitvis ELLER-operator

|Bitvis ELLERResultat bit 1, om någon av operandbitarna är 1; annars resulterar biten 0.x | och

Bitvis XOR-operatör

^Bitvis XORResultatbit 1, om någon av operandbitarna är 1 men inte båda, resulterar annars bit 0.x^y

Bitvis INTE operatör



~Bitvis INTE

Inverterar enskilda bitar.

~x

Python bitvis höger skift

>>Bitvis högerväxling

Den vänstra operandens värde flyttas åt höger med antalet bitar

specificeras av den högra operanden.

x>>

Python bitvis vänsterväxling

<<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.

Pytonorm
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

Pytonorm
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

Pytonorm
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.

Pytonorm
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 .