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.
| OPERAATTORI | NIMI | KUVAUS | SYNTAKSI |
|---|---|---|---|---|
| & | Bitittain JA | Tulosbitti 1, jos molemmat operandibitit ovat 1; muuten tulokset bitti 0. | x & y | |
| | | Bittikohtaisesti TAI | Tulosbitti 1, jos jokin operandibitistä on 1; muuten tulokset bitti 0. | x | ja | |
| ^ | Bitittainen XOR | Tulosbitti 1, jos jokin operandibitistä on 1, mutta ei molempia, muuten tuloksena on bitti 0. | x^y | |
| ~ | Bitittain EI | Kääntää yksittäiset bitit. | ~x | |
| >> | Bittisuuntainen siirto oikealle | Vasemman operandin arvoa siirretään oikealle bittien lukumäärän verran määrittää oikealla operandilla. | x>> | |
| << | 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.

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

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

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

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 arraylistPython
# 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ö: