logo

Python Bitwise Operators

Operatører brukes til å utføre operasjoner på verdier og variabler. Dette er de spesielle symbolene som utfører aritmetiske og logiske beregninger. Verdien operatøren opererer på er kjent som operand.

Python Bitwise Operators

Python bitvise operatorer brukes til å utføre bitvise beregninger på heltall. Heltallene blir først konvertert til binære og deretter operasjoner utføres på hver bit eller tilsvarende bitpar, derav navnet bitvise operatorer. Resultatet returneres deretter i desimalformat.



Merk: Python bitvise operatorer fungerer bare på heltall.


OPERATØRNAVNBESKRIVELSESYNTAKS

Bitvis OG-operator



&Bitvis OGResultatbit 1, hvis begge operandbitene er 1; ellers resulterer bit 0.x & y

Bitvis OR-operator

|Bitvis ELLERResultatbit 1, hvis noen av operandbitene er 1; ellers resulterer bit 0.x | og

Bitvis XOR-operatør

strengformat
^Bitvis XORResultatbit 1, hvis noen av operandbitene er 1, men ikke begge, resulterer ellers bit 0.x^y

Bitvis IKKE operatør



~Bitvis IKKE

Inverterer individuelle biter.

~x

Python Bitvis Høyre Shift

>>Bitvis høyre skift

Den venstre operandens verdi flyttes mot høyre med antall biter

for loop in shell-skript

spesifisert av høyre operand.

x>>

Python Bitvis Venstre Shift

<<Bitvis venstre skift

Den venstre operandens verdi flyttes mot venstre med antall biter

spesifisert av høyre operand.

x<<

La oss forstå hver operatør en etter en.

Bitvis OG Operatør

De Python bitvis OG (&) operatøren tar to like lange bitmønstre som parametere. To-bits heltall sammenlignes. Hvis bitene i de sammenlignede posisjonene til bitmønstrene er 1, er den resulterende biten 1. Hvis ikke, er den 0.

Eksempel: Ta to bitverdier X og Y, der X = 7= (111)2og Y = 4 = (100)2. Ta bitvis og av både X og y

Merk: Her, (111)2representerer binært tall.

Python
a = 10 b = 4 # Print bitwise AND operation print('a & b =', a & b)>

Produksjon

java-strengformatering
a & b = 0>

Bitvis ELLER Operatør

De Python bitvis ELLER (|) Operatøren tar to bitdesign med tilsvarende lengde som grenser; hvis de to bitene i den betraktede posisjonen er 0, er neste bit null. Hvis ikke, er det 1.

Eksempel: Ta to bitverdier X og Y, der X = 7= (111)2og Y = 4 = (100)2. Ta bitvis ELLER av både X, Y

Python
a = 10 b = 4 # Print bitwise OR operation print('a | b =', a | b)>

Produksjon

a | b = 14>

Bitvis XOR-operatør

De Python Bitwise XOR (^) Operator også kjent som den eksklusive OR-operatøren, brukes til å utføre XOR-operasjonen på to operander. XOR står for eksklusive eller, og det returnerer sant hvis og bare hvis nøyaktig en av operandene er sann. I sammenheng med bitvise operasjoner, sammenligner den tilsvarende biter av to operander. Hvis bitene er forskjellige, returnerer den 1; ellers returnerer den 0.

formater datoen i java

Eksempel: Ta to bitverdier X og Y, der X = 7= (111)2 og Y = 4 = (100)2 . Ta Bitwise og av både X og Y

Python
a = 10 b = 4 # print bitwise XOR operation print('a ^ b =', a ^ b)>

Produksjon

a ^ b = 14>

Bitvis IKKE operatør

De foregående tre bitvise operatorene er binære operatorer, noe som krever to operander for å fungere. Imidlertid, i motsetning til de andre, opererer denne operatøren med bare én operand.

De Python bitvis Ikke (~) operatør arbeider med en enkelt verdi og returnerer dens komplement. Dette betyr at den bytter alle biter i verdien, transformerer 0 biter til 1 og 1 biter til 0, noe som resulterer i ens komplement til det binære tallet.

Eksempel : Ta to bitverdier X og Y, hvor X = 5= (101)2 . Ta bitvis IKKE av X.

Python
a = 10 b = 4 # Print bitwise NOT operation print('~a =', ~a)>

Produksjon

~a = -11>

Bitvis skift

Disse operatorene brukes til å forskyve bitene til et tall til venstre eller høyre og dermed multiplisere eller dele tallet med to. De kan brukes når vi skal gange eller dele et tall med to.

Python Bitvis Høyre Shift

Flytter bitene av tallet til høyre og fyller 0 på tomrom til venstre (fyller 1 i tilfelle et negativt tall) som et resultat. Lignende effekt som å dele tallet med en potens av to.

program i java
  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)>

Produksjon

a>> 1 = 5 b>> 1 = -5>

Python Bitvis venstre skift

Flytter bitene av tallet til venstre og fyller 0 på tomrom høyre som et resultat. Lignende effekt som å multiplisere tallet med en potens av 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)>

Produksjon:

a << 1 = 10 b << 1 = -20>

Bitvis operatøroverbelastning

Operatør overbelastning betyr å gi utvidet mening utover deres forhåndsdefinerte operasjonelle betydning. Operator + brukes for eksempel til å legge til to heltall samt slå sammen to strenger og slå sammen to lister. Det er oppnåelig fordi '+'-operatøren er overbelastet av int-klasse og str-klasse. Du har kanskje lagt merke til at den samme innebygde operatoren eller funksjonen viser ulik oppførsel for objekter av forskjellige klasser, dette kalles Operatør overbelastning .

Nedenfor er et enkelt 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('Må være et objekt av klassen Geek') def __invert__(self): print('Inverter operatør overbelastet') returner ~self.value # Driverkode hvis __navn__ == '__main__': a = Geek(10) b = Geek(12) print(a & b) print(a | b) print(a ^ b) print(a)<< b) print(a>> b) print(~a)>

Produksjon:

And operator overloaded 8 Or operator overloaded 14 Xor operator overloaded 8 lshift operator overloaded 40960 rshift operator overloaded 8 Invert operator overloaded -11>

Merk: For å vite mer om operatøroverbelastning Klikk her .