Operatori vengono utilizzati per eseguire operazioni su valori e variabili. Questi sono i simboli speciali che eseguono calcoli aritmetici e logici. Il valore su cui opera l'operatore è noto come operando.
ricerca binaria
Operatori bit a bit Python
Gli operatori bit per bit di Python vengono utilizzati per eseguire calcoli bit per bit su numeri interi. Gli interi vengono prima convertiti in binario e poi vengono eseguite le operazioni su ciascun bit o sulla corrispondente coppia di bit, da cui il nome operatori bit a bit. Il risultato viene quindi restituito in formato decimale.
Nota: Gli operatori bit a bit di Python funzionano solo su numeri interi.
| OPERATORE | NOME | DESCRIZIONE | SINTASSI |
|---|---|---|---|---|
| | & | AND bit per bit | Bit di risultato 1, se entrambi i bit degli operandi sono 1; altrimenti risulta bit 0. | x e y |
| | | OR bit per bit | Bit di risultato 1, se uno qualsiasi dei bit dell'operando è 1; altrimenti risulta bit 0. | x| E | |
| ^ | XOR bit a bit | Bit di risultato 1, se uno qualsiasi dei bit dell'operando è 1 ma non entrambi, altrimenti risulta bit 0. | x^y | |
| | ~ | Bit per bit NON | Inverte i singoli bit. | ~x |
| >> | Spostamento a destra bit per bit | Il valore dell'operando sinistro viene spostato verso destra in base al numero di bit specificato dall'operando destro. | x>> | |
Python bit per bit spostamento a sinistra quante città negli Stati Uniti | << | Spostamento a sinistra bit per bit | Il valore dell'operando sinistro viene spostato verso sinistra in base al numero di bit specificato dall'operando destro. | x<< |
Comprendiamo ogni operatore uno per uno.
Operatore AND bit a bit
IL Python AND bit per bit (&) L'operatore accetta due pattern di bit di uguale lunghezza come parametri. Vengono confrontati gli interi a due bit. Se i bit nelle posizioni confrontate dei modelli di bit sono 1, il bit risultante è 1. In caso contrario, è 0.
Esempio: Prendi due valori bit X e Y, dove X = 7= (111)2e Y = 4 = (100)2. Prendi Bitwise e sia X che y
Nota: Ecco, (111)2rappresentano il numero binario.
materiale angolare

a = 10 b = 4 # Print bitwise AND operation print('a & b =', a & b)> Produzione
a & b = 0>
Operatore OR bit per bit
IL OR bit per bit Python (|) L'operatore prende due progetti di bit di lunghezza equivalente come confini; se i due bit nella posizione osservata sono 0, il bit successivo è zero. In caso contrario, è 1.
Esempio: Prendi due valori bit X e Y, dove X = 7= (111)2e Y = 4 = (100)2. Prendi l'OR bit a bit di entrambi X, Y

a = 10 b = 4 # Print bitwise OR operation print('a | b =', a | b)> Produzione
a | b = 14>
Operatore XOR bit a bit
IL Operatore XOR bit a bit Python (^). noto anche come operatore OR esclusivo, viene utilizzato per eseguire l'operazione XOR su due operandi. XOR sta per esclusivo o e restituisce vero se e solo se esattamente uno degli operandi è vero. Nel contesto delle operazioni bit a bit, confronta i bit corrispondenti di due operandi. Se i bit sono diversi, restituisce 1; altrimenti restituisce 0.
Esempio: Prendi due valori bit X e Y, dove X = 7= (111)2 e Y = 4 = (100)2 . Prendi Bitwise e sia X che Y

algebra degli insiemiPitone
a = 10 b = 4 # print bitwise XOR operation print('a ^ b =', a ^ b)> Produzione
a ^ b = 14>
Operatore NOT bit a bit
I tre operatori bit a bit precedenti sono operatori binari e necessitano di due operandi per funzionare. Tuttavia, a differenza degli altri, questo operatore opera con un solo operando.
IL Operatore Python bit per bit non (~). funziona con un singolo valore e restituisce il suo complemento a uno. Ciò significa che commuta tutti i bit nel valore, trasformando 0 bit in 1 e 1 bit in 0, risultando nel complemento a uno del numero binario.
Esempio : Prendi due valori bit X e Y, dove X = 5= (101)2 . Prendi Bitwise NOT di X.

a = 10 b = 4 # Print bitwise NOT operation print('~a =', ~a)> Produzione
~a = -11>
Spostamento bit a bit
Questi operatori vengono utilizzati per spostare i bit di un numero a sinistra o a destra moltiplicando o dividendo il numero rispettivamente per due. Possono essere utilizzati quando dobbiamo moltiplicare o dividere un numero per due.
Pitone Shift destro bit per bit
Sposta i bit del numero a destra e riempie 0 sui vuoti a sinistra (riempie 1 nel caso di un numero negativo) come risultato. Effetto simile a quello della divisione del numero con una potenza di due.
Example 1: a = 10 = 0000 1010 (Binary) a>> 1 = 0000 0101 = 5 Esempio 2: a = -10 = 1111 0110 (Binario) a>> 1 = 1111 1011 = -5>Pitone
a = 10 b = -10 # print bitwise right shift operator print('a>> 1 =', a>> 1) print('b>> 1 =', b>> 1)> Produzione
a>> 1 = 5 b>> 1 = -5>
Pitone Shift sinistro bit a bit
Sposta i bit del numero a sinistra e di conseguenza riempie 0 sui vuoti a destra. Effetto simile a quello della moltiplicazione del numero con una potenza di due.
converti char in int java
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>Pitone
a = 5 b = -10 # print bitwise left shift operator print('a << 1 =', a << 1) print('b << 1 =', b << 1)> Produzione:
a << 1 = 10 b << 1 = -20>
Sovraccarico degli operatori bit a bit
Sovraccarico degli operatori significa dare un significato esteso oltre il loro significato operativo predefinito. Ad esempio, l'operatore + viene utilizzato per sommare due numeri interi, unire due stringhe e unire due elenchi. È realizzabile perché l'operatore '+' è sovraccaricato dalla classe int e dalla classe str. Potresti aver notato che lo stesso operatore o funzione incorporata mostra un comportamento diverso per oggetti di classi diverse, come viene chiamato Sovraccarico degli operatori .
Di seguito è riportato un semplice esempio di sovraccarico dell'operatore bit a bit.
Pitone # 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('Deve essere un oggetto della classe Geek') def __invert__(self): print('Inverti operatore sovraccarico') return ~self.value # Codice del driver if __name__ == '__main__': a = Geek(10) b = Geek(12) print(a & b) print(a | b) print(a ^ b) print(a<< b) print(a>> b) print(~a)> Produzione:
And operator overloaded 8 Or operator overloaded 14 Xor operator overloaded 8 lshift operator overloaded 40960 rshift operator overloaded 8 Invert operator overloaded -11>
Nota: Per saperne di più sull'overloading degli operatori clicca qui .