Skip to main content

Cosa sono gli operatori bitwise?

In un programma per computer, gli operatori bitwise sono operatori per manipolare i modelli di bit nelle espressioni.Bitwise e, o, esclusivo o (xor), non, a destra e spostamento a sinistra sono operazioni comuni.La maggior parte dei linguaggi di programmazione informatica include tutti e sei questi operatori.Sono spesso utilizzati per l'impostazione, la cancellazione o la lancio di singoli bit in programmi che controllano l'hardware del computer.Gli operatori bitwise sono spesso utilizzati anche negli algoritmi di crittografia e compressione dei dati.

Gli operatori bitwise comuni sono generalmente rappresentati simbolicamente in linguaggi di programmazione come C, C ++ e Java.Sono usati nelle espressioni proprio come gli operatori aritmetici come i segni più o meno.L'operatore bitwise ed è rappresentato con l'amPer e , o con il tubo | e Xor con il cuori ^.Non noto anche come operatore del complemento, è indicato con un tilde ~ .

L'operatore di spostamento a destra utilizza un doppio carretto che punta a destra .Al contrario, lo spostamento a sinistra è indicato da un doppio carretto che punta a sinistra <<.Java include un'altra operazione a destra, mostrata con una tripla car-carretta a destra .

Gli operatori bitwise applicano un'operazione logica a ciascuna coppia di bit nei loro operandi.Non, il turno destro e il turno di sinistra hanno solo un vero operando;Il secondo valore nelle operazioni di cambio è il conteggio dei bit.Per capire meglio come funzionano gli operatori bitwise, un individuo può visualizzare i propri operandi come numeri binari.Ad esempio, l'operatore del complemento lancia ogni bit del suo singolo operando allo stato opposto.Uno diventa uno zero e uno zero diventa uno.Il complemento del valore binario a 8 bit 00110101 è 11001010.

L'operatore e ha due operandi.Poco per bit, un'operazione logica e viene eseguita utilizzando un bit corrispondente da ciascun operando.Il risultato di ciascuna operazione di bit viene inserito in quella posizione di bit del risultato complessivo.Ad esempio, l'operatore e l'operatore elaborerà il bit 7 di un operando con bit 7 dell'altro operando.Il risultato verrà conservato nel bit 7 del risultato complessivo.

In un'operazione e operazioni, entrambi i bit di operand devono essere quelli affinché il risultato sia uno, altrimenti il risultato è zero.Ad esempio, se i valori binari a 8 bit degli operandi sono 00110101 e 11110000, il risultato sarà 00110000. Un uso comune dell'operatore e l'operatore è a zero particolari bit nel risultato.Questo viene fatto posizionando zero in quelle posizioni di bit in uno degli operandi.

in un'operazione o in un'operazione, entrambi i bit di operand devono essere zero per il risultato che il risultato sia zero;Altrimenti, il risultato è uno.Un uso comune dell'operatore o è quello di impostare determinati bit del risultato.Questo viene fatto posizionando quelli in quei bit posizioni in uno degli operandi.Per l'operazione XOR, il risultato è zero se entrambi i bit operand sono zero o se entrambi i bit dell'operando sono uno mdash; altrimenti, il risultato è uno.

spostamento a sinistra e spostamento a destra sposta i bit nell'operando a sinistra o a destra dal numero specificatodi posizioni bit.Uno spostamento logico destro si sposta uno zero nella parte più a sinistra come parte dello spostamento.Un cambio aritmetico a destra copia il bit più a sinistra mdash; il segno bit mdash; prima del passaggio nella stessa posizione dopo lo spostamento.Anche il bit originale viene spostato a destra insieme al resto.Entrambi i tipi di spostamento a sinistra si spostano uno zero nella parte più a destra.

Quando un operando viene spostato a destra, la parte più a destra prima che il turno venga semplicemente gettato via.Allo stesso modo, la parte più a sinistra prima che venga smaltita uno spostamento a sinistra.Non si avvolge all'altra estremità dell'operando.

Le operazioni di spostamento bit sono dipendenti dal linguaggio e dall'implementazione.Ad esempio, in C e C ++, e << eseguono turni logici se l'operando è un numero intero non firmato.Se l'operando è un numero intero firmato, è probabile che venga invece fatto uno spostamento aritmetico.In Java, tutti gli operandi sono considerati firmati e i cambiamenti aritmetici sonosempre eseguito con e <<.L'operatore viene utilizzato per uno spostamento a destra logico, ma è ancora possibile eseguire accidentalmente uno spostamento aritmetico a destra invece senza attento typecast.Alcuni non sono firmati.Operatori bitwise e costanti numeriche nel mezzo di un'espressione complessa non possono essere valutati come previsto.È necessario prestare attenzione a specificare la dimensione e la natura firmata/non firmata di ciascuna quantità nell'espressione.Questo può essere fatto con un'attenta tipografia o assegnazioni provvisorie a tipi di variabili specifici nel codice del programma.