Heim > Java > javaLernprogramm > Javas &-Operator: Bitweises UND oder logisches UND – wann macht es was?

Javas &-Operator: Bitweises UND oder logisches UND – wann macht es was?

Patricia Arquette
Freigeben: 2024-12-02 21:15:19
Original
800 Leute haben es durchsucht

Java's & Operator: Bitwise AND or Logical AND – When Does It Do What?

Die duale Natur des &-Operators verstehen

In Java führt der &-Operator bitweise UND-Operationen für ganze Zahlen durch. Allerdings kann er auch für logische UND-Operationen verwendet werden, was zu Verwirrung über seine wahre Natur führt.

Zur Klarstellung: Der &-Operator ist intern überlastet. Bei booleschen Operanden führt es eine logische UND-Verknüpfung durch. Dies bedeutet, dass beide Operanden ausgewertet werden und festgestellt wird, ob beide wahr sind, bevor das Ergebnis zurückgegeben wird.

Wenn der &-Operator andererseits mit ganzzahligen Operanden verwendet wird, führt er eine bitweise UND-Operation aus. Dabei werden einzelne Bits der beiden Operanden verglichen und eine neue Ganzzahl zurückgegeben, wobei jedes Bit das Ergebnis der entsprechenden bitweisen UND-Operationen an den Eingangsbits ist.

So funktioniert es

Um den Unterschied zwischen logischen und bitweisen UND-Operationen zu verstehen, betrachten Sie die Ausdrücke:

(x != 0) & (1/x > 1)
(x != 0) && (1/x > 1)
Nach dem Login kopieren

Verwenden Sie den logischen UND-Operator (&), Beide Operanden werden unabhängig vom Ergebnis des ersten Operanden ausgewertet. Das heißt, wenn x = 0, gibt der Ausdruck einen Fehler aus, weil er versucht, durch Null zu dividieren.

Mit dem bitweisen UND-Operator (&) wird der zweite Operand jedoch nur ausgewertet, wenn der erste Operand dies ist WAHR. Das heißt, wenn x = 0, wird der Ausdruck als falsch ausgewertet, ohne dass versucht wird, durch Null zu dividieren.

Ähnliches Verhalten mit logischem ODER

Das gleiche Prinzip gilt für logischer ODER-Operator (|). Der Ausdruck exprA | exprB wertet beide Operanden unabhängig vom Ergebnis des ersten Operanden aus, während exprA || exprB wertet den zweiten Operanden nur aus, wenn der erste Operand falsch ist.

Fazit

Während der &-Operator sowohl logische als auch bitweise Funktionalität hat, besteht der Unterschied zwischen den beiden Operationen entscheidend. Logisches AND wertet immer beide Operanden aus, während bitweises AND die Auswertung des zweiten Operanden vermeidet, wenn der erste Operand falsch ist. In ähnlicher Weise wertet das logische ODER beide Operanden aus, während das bitweise ODER die Auswertung des zweiten Operanden vermeidet, wenn der erste Operand wahr ist.

Das obige ist der detaillierte Inhalt vonJavas &-Operator: Bitweises UND oder logisches UND – wann macht es was?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage