Raccomandato, 2020

Scelta Del Redattore

Differenza tra & e &&

I "&" e "&&" sono entrambi gli operatori, utilizzati per valutare le dichiarazioni condizionali. L'operatore & è un operatore logico e bit a bit. L'operatore && è puramente un operatore logico. La differenza fondamentale tra l'operatore & e && è che l'operatore & valuta entrambi i lati dell'espressione, mentre l'operatore && valuta solo il lato sinistro dell'espressione per ottenere il risultato finale. Cerchiamo di capire le altre differenze tra & e && con l'aiuto della tabella di confronto.

Grafico comparativo

Base per il confronto&&&
OperatoreÈ un "Operatore bit a bit".È un "operatore logico".
ValutazioneValuta sia il lato sinistro che quello destro dell'espressione.Valuta solo il lato sinistro dell'espressione.
Funziona suFunziona su "Boolean datatype" e opera su "bit".Funziona solo su "Tipo dati booleani".
UsoUtilizzare per controllare la condizione logica e anche per mascherare alcuni bit come i bit di parità.Utilizzato solo per verificare la condizione logica.

Definizione di & (bitwise AND)

Questo operatore "&" viene utilizzato come entrambi, un operatore logico (&) e un operatore bit a bit. Funziona su dati booleani e binari. Quando & operatore viene utilizzato come operatore logico e quindi, risulta "vero" se entrambi i lati dell'espressione di valutazione sono veri, altrimenti restituisce "falso". Permette al compilatore di valutare entrambi i lati dell'espressione. Cioè, anche se il lato sinistro dell'espressione risulta falso, valuta il lato destro dell'espressione.

Fateci capire questo con un esempio.

 int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // output false b = 5 

Qui, valutando il lato sinistro dell'espressione (a == 6), risulta falso, l'operatore & valuta quindi il lato destro dell'espressione (b ++ == 6) come risultato, il valore degli incrementi b.

Quando '&' usato come un "operatore bit a bit", converte prima entrambi gli operandi in forma binaria e poi opera su di esso usando l'operatore & bit, bit per bit. Dopo l'operazione, il risultato ottenuto è in formato binario, che viene poi convertito in decimale. Qualsiasi bit che sia 0 in uno degli operandi risulta in 0. Se entrambi i bit degli operandi sono 1, il bit risultante è 1. Bitwise e l'operatore è governato dalla stessa tabella di verità del suo operatore logico e.

Vediamo l'operazione bit a bit di & operator.

 int a; a = 3 e 4; // 011 e 100 = 000 system.out.println ("a =" + a); // output a = 0 

Qui, i valori decimali 3 e 4 vengono inizialmente convertiti nella loro forma binaria, e quindi l'operatore & bitwise esegue l'operazione & su di essi bit per bit. Il risultato ottenuto è in formato binario, che viene quindi convertito nuovamente in forma decimale.

Definizione di && (Cortocircuito AND)

Questo operatore && funziona totalmente come un operatore logico. Funziona solo sul tipo di dati booleani. Viene anche chiamato operatore di cortocircuito. Come si controlla solo il lato sinistro dell'espressione. Se il lato sinistro dell'espressione risulta falso, non si preoccupa di valutare il lato destro dell'espressione.

Ci consente di capire il funzionamento dell'operatore && con un esempio.

 int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // output false b = 4 

Qui, la condizione as (a == 6) è falsa, l'operatore && non valuta l'espressione (b ++ == 6) come risultato, il valore di b non aumenta.

Differenze chiave tra & e &&

  1. L'operatore & è un operatore logico e bit a bit, poiché opera sia su valori booleani sia su dati binari, mentre l'operatore && è solo un operatore logico in quanto opera solo su un tipo di dati booleani.
  2. L'operatore & valuta entrambi i lati dell'espressione per ottenere il risultato finale, mentre l'operatore && valuta solo il lato sinistro dell'espressione e se risulta falso non valuta nemmeno il lato destro dell'espressione.

Nota:

Durante la valutazione del tipo di dati booleano, entrambi gli operatori risultano "true" solo se entrambi gli operandi sono veri, altrimenti restituisce "false".

Conclusione:

L'operatore & e &&, entrambi vengono utilizzati per valutare la condizione booleana mentre, l'operatore & viene utilizzato anche per l'operazione bit a bit. Quando abbiamo bisogno di valutare entrambi i lati dell'espressione, l'operatore & viene utilizzato altrimenti possiamo usare l'operatore &&.

Top