logo

Python Bitwise -operaattorit

Operaattorit käytetään suorittamaan operaatioita arvoille ja muuttujille. Nämä ovat erikoissymboleja, jotka suorittavat aritmeettisia ja loogisia laskelmia. Arvo, jolla operaattori toimii, tunnetaan nimellä Operandi.

tulostaa javasta

Python Bitwise -operaattorit

Pythonin bittikohtaisia ​​operaattoreita käytetään kokonaislukujen bittikohtaisiin laskelmiin. Kokonaisluvut muunnetaan ensin binäärisiksi ja sitten suoritetaan operaatioita jokaiselle bitille tai vastaavalle bittiparille, mistä johtuu nimi bittikohtaiset operaattorit. Tulos palautetaan sitten desimaalimuodossa.

Huomautus: Pythonin bittikohtaiset operaattorit toimivat vain kokonaisluvuilla.




OPERAATTORINIMIKUVAUSSYNTAKSI

Bittikohtainen AND-operaattori

&Bitittain JATulosbitti 1, jos molemmat operandibitit ovat 1; muuten tulokset bitti 0.x & y

Bittikohtainen OR-operaattori

|Bittikohtaisesti TAITulosbitti 1, jos jokin operandibitistä on 1; muuten tulokset bitti 0.x | ja

Bitwise XOR-operaattori

^Bitittainen XORTulosbitti 1, jos jokin operandibitistä on 1, mutta ei molempia, muuten tuloksena on bitti 0.x^y

Bitwise EI operaattori

~Bitittain EI

Kääntää yksittäiset bitit.

~x

Python Bitwise Right Shift

>>Bittisuuntainen siirto oikealle

Vasemman operandin arvoa siirretään oikealle bittien lukumäärän verran

määrittää oikealla operandilla.

x>>

Python Bitwise Vasen Shift

<<Bittisuuntainen siirto vasemmalle

Vasemman operandin arvoa siirretään vasemmalle bittien lukumäärän verran

määrittää oikealla operandilla.

x<<

Ymmärretään jokainen operaattori yksitellen.

Bitwise JA Operaattori

The Python Bitwise JA (&) operaattori ottaa kaksi yhtä pitkää bittikuviota parametreiksi. Kaksibittisiä kokonaislukuja verrataan. Jos bittikuvioiden vertailukohdissa olevat bitit ovat 1, niin tuloksena oleva bitti on 1. Jos ei, se on 0.

plsql

Esimerkki: Otetaan kaksi bittiarvoa X ja Y, missä X = 7= (111)2ja Y = 4 = (100)2. Ota Bitwise ja sekä X että y

Huomautus: Täällä (111)2edustavat binäärilukua.

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

Lähtö

a & b = 0>

Bittikohtainen TAI Operaattori

The Python Bitwise TAI (|) Operaattori ottaa kaksi samanpituista bittimallia rajauksiksi; jos kaksi bittiä tarkastelupaikassa ovat 0, seuraava bitti on nolla. Jos ei, se on 1.

Esimerkki: Otetaan kaksi bittiarvoa X ja Y, missä X = 7= (111)2ja Y = 4 = (100)2. Ota bittikohtaisesti TAI molemmista X, Y

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

Lähtö

a | b = 14>

Bitwise XOR-operaattori

The Python Bitwise XOR (^) -operaattori Tunnetaan myös yksinomaisena OR-operaattorina, käytetään suorittamaan XOR-operaatio kahdelle operandille. XOR on lyhenne sanoista exclusive or, ja se palauttaa tosi, jos ja vain jos täsmälleen yksi operandeista on tosi. Bittikohtaisten toimintojen yhteydessä se vertaa kahden operandin vastaavia bittejä. Jos bitit ovat erilaisia, se palauttaa 1; muussa tapauksessa se palauttaa 0.

Esimerkki: Otetaan kaksi bittiarvoa X ja Y, joissa X = 7= (111)2 ja Y = 4 = (100)2 . Ota Bitwise ja sekä X että Y

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

Lähtö

a ^ b = 14>

Bitwise EI operaattori

Kolme edellistä bittikohtaista operaattoria ovat binäärioperaattoreita, jotka edellyttävät toimiakseen kahta operandia. Toisin kuin muut, tämä operaattori toimii kuitenkin vain yhdellä operandilla.

The Python Bitwise Ei (~) -operaattori toimii yhdellä arvolla ja palauttaa sen täydennyksen. Tämä tarkoittaa, että se vaihtaa kaikki arvon bitit ja muuttaa 0 bitin 1:ksi ja 1 bitin 0:ksi, jolloin tuloksena on binääriluvun yksi-komplementti.

Esimerkki : Ota kaksi bittiarvoa X ja Y, missä X = 5= (101)2 . Ota bittikohtaisesti EI X:stä.

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

Lähtö

~a = -11>

Bitwise Shift

Näitä operaattoreita käytetään siirtämään luvun bittejä vasemmalle tai oikealle kertomalla tai jakamalla luku kahdella. Niitä voidaan käyttää, kun meidän on kerrottava tai jaettava luku kahdella.

Python Bitwise Right Shift

Siirtää luvun bittejä oikealle ja täyttää 0:n vasemmassa tyhjässä (täyttää 1:n, jos luku on negatiivinen). Samanlainen vaikutus kuin luvun jakaminen jollakin kahden potenssilla.

  Example 1:   a = 10 = 0000 1010 (Binary) a>> 1 = 0000 0101 = 5 Esimerkki 2: a = -10 = 1111 0110 (binäärinen) 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)>> 

Lähtö

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

Python Bittisuuntainen vasen vaihto

Siirtää luvun bittejä vasemmalle ja täyttää tämän seurauksena 0:n tyhjät kohdat oikealle. Samanlainen vaikutus kuin kertomalla luku jollain kahdella.

a = 5 b = -10 # print bitwise left shift operator print('a << 1 =', a << 1) print('b << 1 =', b << 1)>

Lähtö:

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

Bittikohtainen operaattorin ylikuormitus

Kuljettajan ylikuormitus tarkoittaa laajemman merkityksen antamista ennalta määritellyn toiminnallisen merkityksensä ulkopuolelle. Esimerkiksi operaattoria + käytetään lisäämään kaksi kokonaislukua sekä yhdistämään kaksi merkkijonoa ja yhdistämään kaksi luetteloa. Se on saavutettavissa, koska '+'-operaattori on ylikuormitettu int- ja str-luokilla. Olet ehkä huomannut, että sama sisäänrakennettu operaattori tai funktio näyttää erilaista käyttäytymistä eri luokkien objekteille, tätä kutsutaan ns. Kuljettajan ylikuormitus .

Alla on yksinkertainen esimerkki Bitwise-operaattorin ylikuormituksesta.

lajitella arraylist
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('Täytyy olla luokan Geek objekti') def __invert__(self): print('Invertoperaattori ylikuormitettu') return ~self.value # Ohjaimen koodi jos __nimi__ == '__main__': a = Geek(10) b = Geek(12) tulosta(a & b) tulosta(a | b) tulosta(a ^ b) tulosta(a)<< b) print(a>> b) tulosta(~a)>> 

Lähtö:

Huomautus: Lisätietoja kuljettajan ylikuormituksesta Klikkaa tästä .