logo

Operatori bit a bit Python

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.


OPERATORENOMEDESCRIZIONESINTASSI

Operatore AND bit a bit



&AND bit per bitBit di risultato 1, se entrambi i bit degli operandi sono 1; altrimenti risulta bit 0.x e y

Operatore OR bit a bit

|OR bit per bitBit di risultato 1, se uno qualsiasi dei bit dell'operando è 1; altrimenti risulta bit 0.x| E

Operatore XOR bit a bit

^XOR bit a bitBit di risultato 1, se uno qualsiasi dei bit dell'operando è 1 ma non entrambi, altrimenti risulta bit 0.x^y

Operatore NOT bit a bit



~Bit per bit NON

Inverte i singoli bit.

~x

Python bit per bit spostamento destro

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

Pitone
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

Pitone
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 insiemi
Pitone
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.

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