Aanbevolen, 2021

Editor'S Choice

Verschil tussen & en &&

De "&" en "&&" zijn beide de operatoren, gebruikt om de voorwaardelijke uitspraken te evalueren. De operator & is zowel een logische als een bitsgewijze operator. De &&-operator is puur een logische operator. Het basisverschil tussen de & en && -operator is dat de operator & beide zijden van de expressie evalueert, terwijl de operator && alleen de linkerkant van de expressie evalueert om het eindresultaat te verkrijgen. Laten we de andere verschillen tussen & en && begrijpen met behulp van een vergelijkingstabel.

Vergelijkingstabel

Basis voor vergelijking&&&
operatorHet is een "Bitwise Operator".Het is een "logische operator".
evaluatieHet evalueert zowel de linker- als de rechterkant van de uitdrukking.Het evalueert alleen de linkerkant van de uitdrukking.
Werkt opHet werkt op "Boolean datatype" en werkt op "bits".Het werkt alleen op "Boolean datatype".
GebruikGebruik om de logische conditie te controleren en wordt ook gebruikt om bepaalde bits zoals pariteitsbits te maskeren.Wordt alleen gebruikt om de logische toestand te controleren.

Definitie van & (Bitwise AND)

Deze '&' -operator wordt gebruikt als allebei, een logische (&) -operator en een bitsgewijze operator. Het werkt zowel op booleaanse als binaire gegevens. Wanneer & operator wordt gebruikt als logische & operator, resulteert dit in "true" als beide zijden van de expressie van evaluatie waar zijn, anders retourneert het "false". Hiermee kan de compiler zowel de kant van de expressie evalueren. Dat wil zeggen, zelfs als de linkerkant van de uitdrukking onjuist is, evalueert het de rechterkant van de uitdrukking.

Laat ons dit begrijpen met een voorbeeld.

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

Hier, bij het evalueren van de linkerkant van de uitdrukking (a == 6), resulteert dit in false, en de operator & evalueert vervolgens de rechterkant van de uitdrukking (b ++ == 6) als resultaat, de waarde van b-stappen.

Wanneer '&' wordt gebruikt als een 'bitsgewijze operator', converteert het eerst beide operanden in binaire vorm en werkt het vervolgens met & operator, bit-voor-bit. Na de bewerking is het verkregen resultaat in binaire vorm, dat vervolgens wordt omgezet in decimaal. Elke bit die 0 is in elk van de operanden resulteert in 0. Als beide bits van de operanden 1 zijn, is de resulterende bit 1. Bitwise & operator wordt bestuurd door dezelfde waarheidstabel als door zijn logische & operator.

Laten we de bitgewijze bediening van & operator bekijken.

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

Hier worden de decimale waarden 3 en 4 in eerste instantie geconverteerd naar hun binaire vorm en vervolgens voert de & bitwise-operator de bewerking & beetje op beetje uit. Het verkregen resultaat is in binaire vorm, die vervolgens weer in decimale vorm wordt omgezet.

Definitie van && (Kortsluiting EN)

Deze && operator werkt volledig als een logische operator. Het werkt alleen op het booleaanse gegevenstype. Het wordt ook kortsluitingsoperator genoemd. Omdat het alleen de linkerkant van de uitdrukking controleert. Als de linkerkant van de expressie resulteert in false, dan heeft het geen zin om de rechterkant van de expressie te evalueren.

Laat ons de werking van de && operator begrijpen met een voorbeeld.

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

Hier, als de voorwaarde (a == 6) false is, evalueert de && operator de uitdrukking (b ++ == 6) niet, de waarde van b neemt niet toe.

Belangrijkste verschillen tussen & en &&

  1. De operator & is zowel een logische als een bitsgewijze operator, omdat deze zowel op booleans als binaire gegevens werkt, terwijl de operator && alleen een logische operator is, omdat deze alleen op een boolean gegevenstype werkt.
  2. De & -operator evalueert beide zijden van de expressie om het uiteindelijke resultaat te verkrijgen, terwijl de &&-operator alleen de linkerkant van de expressie evalueert en als false wordt geconstateerd, wordt zelfs de rechterzijde van de expressie niet geƫvalueerd.

Notitie:

Tijdens het evalueren van het boolean-gegevenstype resulteren beide operators alleen in "waar" als beide operand waar zijn, anders retourneert het "false".

Conclusie:

De & en &&-operator, beide worden gebruikt om de boolean-voorwaarde te evalueren, terwijl de operator & ook wordt gebruikt voor de bitsgewijze bewerking. Wanneer we beide zijden van de expressie moeten evalueren die de operator & anders gebruikt, kunnen we && operator gebruiken.

Top