Operatører bruges til at udføre operationer på værdier og variabler. Disse er de specielle symboler, der udfører aritmetiske og logiske beregninger. Værdien operatøren opererer på er kendt som operand.
Python Bitwise Operators
Python bitvise operatorer bruges til at udføre bitvise beregninger på heltal. Heltallene konverteres først til binære og derefter udføres operationer på hver bit eller tilsvarende bitpar, deraf navnet bitvise operatorer. Resultatet returneres derefter i decimalformat.
Bemærk: Python bitvise operatorer virker kun på heltal.
| OPERATØR | NAVN | BESKRIVELSE | SYNTAKS |
---|---|---|---|---|
| & | Bitvis OG | Resultat bit 1, hvis begge operand bits er 1; ellers resulterer bit 0. | x & y |
| | Bitvis ELLER | Resultat bit 1, hvis nogen af operandbitten er 1; ellers resulterer bit 0. | x | og | |
e r model eksempler | ^ | Bitvist XOR | Resultatbit 1, hvis nogen af operandbitten er 1, men ikke begge, resulterer ellers bit 0. | x^y |
| ~ | Bitvis IKKE | Inverterer individuelle bits. | ~x |
>> | Bitvist højreskift | Den venstre operands værdi flyttes mod højre med antallet af bit til loop in shell-script angivet af den højre operand. | x>> | |
<< | Bitvist venstreskift | Den venstre operands værdi flyttes mod venstre med antallet af bit angivet af den højre operand. | x<< |
Lad os forstå hver operatør en efter en.
Bitvis OG Operatør
Det Python bitvis OG (&) operatoren tager to lige lange bitmønstre som parametre. De to-bit heltal sammenlignes. Hvis bits i de sammenlignede positioner af bitmønstrene er 1, så er den resulterende bit 1. Hvis ikke, er den 0.
Eksempel: Tag to bitværdier X og Y, hvor X = 7= (111)2og Y = 4 = (100)2. Tag Bitwise og af både X & y
Bemærk: Her, (111)2repræsentere binært tal.
a = 10 b = 4 # Print bitwise AND operation print('a & b =', a & b)>
Produktion
java streng formatering
a & b = 0>
Bitvis ELLER Operator
Det Python bitvis ELLER (|) Operatøren tager to ækvivalente længde bitdesigns som grænser; hvis de to bits i den betragtede position er 0, er den næste bit nul. Hvis ikke, er det 1.
Eksempel: Tag to bitværdier X og Y, hvor X = 7= (111)2og Y = 4 = (100)2. Tag bitvis ELLER af både X, Y
a = 10 b = 4 # Print bitwise OR operation print('a | b =', a | b)>
Produktion
a | b = 14>
Bitwise XOR Operator
Det Python Bitwise XOR (^) Operator også kendt som den eksklusive OR-operator, bruges til at udføre XOR-operationen på to operander. XOR står for exclusive or, og det returnerer sandt, hvis og kun hvis præcis en af operanderne er sand. I forbindelse med bitvise operationer sammenligner den tilsvarende bits af to operander. Hvis bits er forskellige, returnerer det 1; ellers returnerer den 0.
10 1 mio
Eksempel: Tag to bitværdier X og Y, hvor X = 7= (111)2 og Y = 4 = (100)2 . Tag Bitwise og af både X & Y
a = 10 b = 4 # print bitwise XOR operation print('a ^ b =', a ^ b)>
Produktion
a ^ b = 14>
Bitvist IKKE operatør
De foregående tre bitvise operatorer er binære operatorer, hvilket kræver to operander for at fungere. Men i modsætning til de andre opererer denne operatør med kun én operand.
Det Python Bitwise Ikke (~) Operator arbejder med en enkelt værdi og returnerer dens ens komplement. Dette betyder, at den skifter alle bits i værdien og transformerer 0 bit til 1 og 1 bit til 0, hvilket resulterer i ens komplement til det binære tal.
Eksempel : Tag to bitværdier X og Y, hvor X = 5= (101)2 . Tag bitvis IKKE af X.
a = 10 b = 4 # Print bitwise NOT operation print('~a =', ~a)>
Produktion
~a = -11>
Bitvist skift
Disse operatorer bruges til at flytte bits af et tal til venstre eller højre og derved multiplicere eller dividere tallet med to hhv. De kan bruges, når vi skal gange eller dividere et tal med to.
Python Bitvis højre skift
Flytter bits af tallet til højre og udfylder 0 på tomrum til venstre (udfylder 1 i tilfælde af et negativt tal) som et resultat. Lignende effekt som ved at dividere tallet med en eller anden potens af to.
tiger løve forskel
Example 1: a = 10 = 0000 1010 (Binary) a>> 1 = 0000 0101 = 5 Eksempel 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)>
Produktion
a>> 1 = 5 b>> 1 = -5>
Python Bitvis venstre skift
Flytter bits af tallet til venstre og udfylder 0 på tomrum til højre som et resultat. Lignende effekt som at gange tallet med en eller anden potens af to.
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)>
Produktion:
a << 1 = 10 b << 1 = -20>
Bitwise Operator Overloading
Operatør overbelastning betyder at give udvidet mening ud over deres foruddefinerede operationelle betydning. For eksempel bruges operator + til at tilføje to heltal samt forbinde to strenge og flette to lister. Det er opnåeligt, fordi '+'-operatoren er overbelastet af int-klasse og str-klasse. Du har måske bemærket, at den samme indbyggede operator eller funktion viser forskellig adfærd for objekter af forskellige klasser, dette kaldes Operatør overbelastning .
Nedenfor er et simpelt eksempel på Bitwise-operatøroverbelastning.
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('Skal være et objekt af klassen Geek') def __invert__(self): print('Inverter operator overbelastet') returner ~self.value # Drivers kode hvis __navn__ == '__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>
Bemærk: For at vide mere om operatøroverbelastning Klik her .