Empfohlen, 2019

Tipp Der Redaktion

Unterschied zwischen & und &&

Die Operatoren "&" und "&&" dienen zur Auswertung der Bedingungsanweisungen. Der Operator & ist sowohl ein logischer als auch ein bitweiser Operator. Der Operator && ist ein reiner logischer Operator. Der grundlegende Unterschied zwischen dem Operator & und && besteht darin, dass der Operator & beide Seiten des Ausdrucks auswertet, während der Operator && nur die linke Seite des Ausdrucks auswertet, um das Endergebnis zu erhalten. Lassen Sie uns die anderen Unterschiede zwischen & und && anhand eines Vergleichsdiagramms verstehen.

Vergleichstabelle

Vergleichsgrundlage&&&
OperatorEs ist ein "bitweiser Operator".Es ist ein "logischer Operator".
AuswertungEs wertet die linke und rechte Seite des Ausdrucks aus.Es wertet nur die linke Seite des Ausdrucks aus.
Funktioniert weiterEs arbeitet mit "booleschem Datentyp" sowie mit "Bits".Es funktioniert nur bei "booleschem Datentyp".
BenutzenMit dieser Option können Sie den logischen Zustand überprüfen und bestimmte Bits wie Paritätsbits ausblenden.Wird nur zum Überprüfen des logischen Zustands verwendet.

Definition von & (bitweises AND)

Dieser '&' - Operator wird sowohl als logischer (&) als auch als bitweiser Operator verwendet. Es funktioniert sowohl für boolesche als auch für binäre Daten. Wenn & operator als logischer & Operator verwendet wird, führt dies zu „true“, wenn beide Auswertungsausdrücke „true“ sind. Andernfalls wird „false“ zurückgegeben. Damit kann der Compiler beide Seiten des Ausdrucks auswerten. Das heißt, selbst wenn die linke Seite des Ausdrucks "false" ergibt, wird die rechte Seite des Ausdrucks ausgewertet.

Lasst uns das an einem Beispiel verstehen.

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

Bei der Auswertung der linken Seite des Ausdrucks (a == 6) führt dies zu false, der Operator & wertet dann die rechte Seite des Ausdrucks (b ++ == 6) aus, und der Wert von b erhöht sich.

Wenn '&' als „bitweiser Operator“ verwendet wird, konvertiert es zuerst beide Operanden in binäre Form und verarbeitet sie dann bitweise mit dem Operator &. Nach der Operation liegt das erhaltene Ergebnis in binärer Form vor und wird in Dezimalzahlen umgewandelt. Jedes Bit, das in einem der Operanden 0 ist, führt zu 0. Wenn beide Bits der Operanden 1 sind, ist das resultierende Bit 1. Der Operator Bitweise & wird von derselben Wahrheitstabelle wie von seinem logischen Operator & gesteuert.

Lassen Sie uns die bitweise Operation von & operator sehen.

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

Hier werden zunächst die Dezimalwerte 3 und 4 in ihre binäre Form umgewandelt, und dann führt der Operator & bitwise die Operation & bitweise aus. Das Ergebnis ist in binärer Form und wird dann erneut in Dezimalform konvertiert.

Definition von && (Kurzschluss UND)

Dieser Operator && arbeitet vollständig als logischer Operator. Es arbeitet nur mit dem booleschen Datentyp. Es wird auch als Kurzschlussoperator bezeichnet. Da wird nur die linke Seite des Ausdrucks geprüft. Wenn die linke Seite des Ausdrucks false ergibt, kümmert es sich nicht darum, die rechte Seite des Ausdrucks auszuwerten.

Lasst uns die Funktionsweise des &&-Operators anhand eines Beispiels verstehen.

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

Da hier die Bedingung (a == 6) falsch ist, wertet der Operator && den Ausdruck (b ++ == 6) nicht aus. Der Wert von b wird nicht inkrementiert.

Hauptunterschiede zwischen & und &&

  1. Der Operator & ist sowohl ein logischer als auch ein bitweiser Operator, da er sowohl mit Booleans als auch mit Binärdaten arbeitet, während der Operator && nur ein logischer Operator ist, da er nur mit einem booleschen Datentyp arbeitet.
  2. Der Operator & wertet beide Seiten des Ausdrucks aus, um das Endergebnis zu erhalten, während der Operator && nur die linke Seite des Ausdrucks auswertet. Wenn sich als falsch herausstellt, wertet er die rechte Seite des Ausdrucks nicht einmal aus.

Hinweis:

Bei der Auswertung des booleschen Datentyps führen beide Operatoren nur dann zu "true", wenn beide Operanden wahr sind, ansonsten wird "false" zurückgegeben.

Fazit:

Die Operatoren & und && werden beide verwendet, um die Boolesche Bedingung auszuwerten, während der Operator & auch für die bitweise Operation verwendet wird. Wenn beide Seiten des Ausdrucks ausgewertet werden müssen, wird der Operator & verwendet. Andernfalls können wir den Operator && verwenden.

Top