Operatori tiek izmantoti, lai veiktu darbības ar vērtībām un mainīgajiem. Šie ir īpašie simboli, kas veic aritmētiskos un loģiskos aprēķinus. Vērtība, ko izmanto operators, ir pazīstama kā operands.
Python Bitwise operatori
Python bitu operatori tiek izmantoti, lai veiktu bitu aprēķinus veseliem skaitļiem. Veselie skaitļi vispirms tiek pārveidoti par bināriem, un pēc tam tiek veiktas darbības ar katru bitu vai atbilstošo bitu pāri, tādēļ nosaukums ir bitu operatori. Pēc tam rezultāts tiek atgriezts decimālā formātā.
Piezīme: Python bitu operatori darbojas tikai ar veseliem skaitļiem.
| OPERATORS | VĀRDS | APRAKSTS | SINTAKSE |
|---|---|---|---|---|
| | & | Bitu UN | Rezultāta bits 1, ja abi operanda biti ir 1; pretējā gadījumā rezultātu bits 0. | x un y |
| | | Bitu virzienā VAI | Rezultāta bits 1, ja kāds no operanda bitiem ir 1; pretējā gadījumā rezultātu bits 0. | x | un | |
| ^ | Bitu XOR | Rezultāta bits 1, ja kāds no operanda bitiem ir 1, bet ne abi, pretējā gadījumā rezultātu bits ir 0. | x^y | |
saraksts uz java | ~ | Bitu veidā NAV | Invertē atsevišķus bitus. | ~x |
| >> | Bitu maiņa pa labi | Kreisā operanda vērtība tiek pārvietota uz labo pusi par bitu skaitu ko nosaka pareizais operands. | x>> | |
| << | Bitu pa kreisi nobīde | Kreisā operanda vērtība tiek pārvietota uz kreiso pusi par bitu skaitu ko nosaka pareizais operands. | x<< |
Izpratīsim katru operatoru pa vienam.
Bitwise UN operators
The Python Bitwise UN (&) operators kā parametrus izmanto divus vienāda garuma bitu modeļus. Tiek salīdzināti divu bitu veseli skaitļi. Ja biti bitu modeļu salīdzinātajās pozīcijās ir 1, tad iegūtais bits ir 1. Ja nē, tas ir 0.
Piemērs: Ņemiet divas bitu vērtības X un Y, kur X = 7 = (111)2un Y = 4 = (100)2. Paņemiet Bitwise un abus X un y
Piezīme: Šeit, (111)2apzīmē bināro skaitli.

a = 10 b = 4 # Print bitwise AND operation print('a & b =', a & b)> Izvade
a & b = 0>
Bitu virzienā VAI operators
The Python Bitwise VAI (|) Operators kā robežas izmanto divus līdzvērtīga garuma bitu dizainus; ja divi biti apskatāmajā pozīcijā ir 0, nākamais bits ir nulle. Ja nē, tas ir 1.
Piemērs: Ņemiet divas bitu vērtības X un Y, kur X = 7 = (111)2un Y = 4 = (100)2. Paņemiet bitu virzienā VAI abus X, Y

norobežotājs javaPython
a = 10 b = 4 # Print bitwise OR operation print('a | b =', a | b)> Izvade
a | b = 14>
Bitu XOR operators
The Python Bitwise XOR (^) operators pazīstams arī kā ekskluzīvais VAI operators, tiek izmantots, lai veiktu XOR operāciju diviem operandiem. XOR apzīmē ekskluzīvu vai, un tas atgriež patiesu tad un tikai tad, ja tieši viens no operandiem ir patiess. Bitu operāciju kontekstā tas salīdzina atbilstošos divu operandu bitus. Ja biti atšķiras, tas atgriež 1; pretējā gadījumā tas atgriež 0.
Piemērs: Ņemiet divas bitu vērtības X un Y, kur X = 7= (111)2 un Y = 4 = (100)2. Paņemiet Bitwise un X un Y

a = 10 b = 4 # print bitwise XOR operation print('a ^ b =', a ^ b)> Izvade
a ^ b = 14>
Bitwise NAV operators
Iepriekšējie trīs bitu operatori ir bināri operatori, kuru darbībai ir nepieciešami divi operandi. Tomēr atšķirībā no citiem šis operators darbojas tikai ar vienu operandu.
The Python Bitwise Nav (~) operators darbojas ar vienu vērtību un atgriež tās papildinājumu. Tas nozīmē, ka tas pārslēdz visus vērtības bitus, pārveidojot 0 bitus par 1 un 1 bitu par 0, kā rezultātā tiek iegūts binārā skaitļa viens papildinājums.
Piemērs : ņem divas bitu vērtības X un Y, kur X = 5= (101)2 . Ņemiet bitu virzienā, NEVIS no X.

a = 10 b = 4 # Print bitwise NOT operation print('~a =', ~a)> Izvade
dharmendra vecums
~a = -11>
Bitu maiņa
Šos operatorus izmanto, lai pārvietotu skaitļa bitus pa kreisi vai pa labi, tādējādi attiecīgi reizinot vai dalot skaitli ar divi. Tos var izmantot, ja mums ir jāreizina vai jādala skaitlis ar divi.
Python Bitu pa labi Shift
Rezultātā skaitļa biti tiek pārvietoti pa labi un tukšos laukumus aizpilda 0 (aizpilda 1, ja skaitlis ir negatīvs). Līdzīgs efekts kā skaitļa dalīšanai ar kādu divu pakāpju.
Example 1: a = 10 = 0000 1010 (Binary) a>> 1 = 0000 0101 = 5 2. piemērs: a = -10 = 1111 0110 (binārs) 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)>> Izvade
a>> 1 = 5 b>> 1 = -5>
Python Bitu pa kreisi Shift
Nobīda skaitļa bitus pa kreisi un aizpilda 0 tukšumos pa labi. Līdzīgs efekts kā skaitļa reizināšanai ar kādu divu jaudu.
a = 5 b = -10 # print bitwise left shift operator print('a << 1 =', a << 1) print('b << 1 =', b << 1)> Izvade:
a << 1 = 10 b << 1 = -20>
Bitu operatora pārslodze
Operatora pārslodze nozīmē paplašinātu nozīmi ārpus to iepriekš noteiktās darbības nozīmes. Piemēram, operators + tiek izmantots, lai pievienotu divus veselus skaitļus, kā arī apvienotu divas virknes un sapludinātu divus sarakstus. Tas ir sasniedzams, jo operatoru “+” pārslogo int un str klase. Jūs, iespējams, pamanījāt, ka viens un tas pats iebūvētais operators vai funkcija parāda atšķirīgu uzvedību dažādu klašu objektiem, to sauc par Operatora pārslodze .
Zemāk ir vienkāršs Bitwise operatora pārslodzes piemērs.
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('Jābūt klases Geek objektam') def __invert__(self): print('Invert operators overloaded') return ~self.value # Draivera kods, ja __name__ == '__main__': a = Geek(10) b = Geek(12) print(a & b) print(a | b) print(a ^ b) print(a)<< b) print(a>> b) drukāt(~a)>>Izvade: