381 Stimmen

Was ist der Unterschied zwischen den Operatoren | und || oder?

Ich habe immer verwendet || (zwei Pipes) in OR-Ausdrücken, sowohl in C# als auch in PHP. Gelegentlich sehe ich eine einzelne Pipe verwendet: | . Was ist der Unterschied zwischen diesen beiden Verwendungen? Gibt es irgendwelche Vorbehalte bei der Verwendung des einen gegenüber dem anderen oder sind sie austauschbar?

0voto

codeLes Punkte 2903

Das einzelne Rohr, |, ist eine der bitweise Betreiber.

Aus Wikipedia:

In der Programmiersprachenfamilie C ist der bitweise ODER-Operator "|" (Pipe). Auch dieser Operator darf nicht mit seinem booleschen Gegenstück, dem "logischen Oder", verwechselt werden, das seine Operanden als boolesche Werte behandelt und mit "||" (zwei Pipes) geschrieben wird.

0voto

Dragos Bandur Punkte 81

Gemäß ihrer mathematischen Definition sind ODER und UND binäre Operatoren; sie überprüfen die LHS- und RHS-Bedingungen unabhängig voneinander, ähnlich wie | und &.

|| und && ändern die Eigenschaften der Operatoren OR und AND, indem sie diese stoppen, wenn die LHS-Bedingung nicht erfüllt ist.

-1voto

RvSingh3213 Punkte 163

Für bitweise | und Logicall ||

OR

bitweise & und logisch alle &&

es bedeutet if( a>b | a==0) in diesem ersten links a>b wird ausgewertet und dann a==0 wird dann ausgewertet | Die Operation wird durchgeführt

aber in || if a>b dann, wenn nicht auf das nächste RHS geprüft wird

Gleiches gilt für & und &&

if(A>0 & B>0)

wird LHS und dann RHS ausgewertet und dann bitweise & durchgeführt, aber

in (A>0 && B>0)

if(A>0) es false (LHS) wird sie direkt return false;

-2voto

Kyle Cronin Punkte 74993

Die einzelne Pipe "|" ist die "bitweise" oder und sollte nur verwendet werden, wenn Sie wissen, was Sie tun

H

-3voto

Dane Punkte 9421

A b .

T

T

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X