Entwickler-Ecke

C# - Die Sprache - Was bedeutet so ein C#-Ausdruck?


louis123 - Mi 16.09.20 19:54
Titel: Was bedeutet so ein C#-Ausdruck?
Hallo
ich programmiere zwar schon länger aber ich habe noch nie operatoren (&) so benutzt.
was bedeutet dieser ausdruck?

C#-Quelltext
1:
if ((screenData[pos] & 1) == 0)                    

genau geht es um diesen abschnitt:
screenData[pos] & 1 oder beliebigevariable & 1

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Moderiert von user profile iconTh69: Titel (leicht) geändert.


Ralf Jansen - Mi 16.09.20 20:24

https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators#logical-and-operator-

Das ist der binärer AND Operator der ein bitweise UND Verknüpfung vornimmt.
Der gezeigte Ausdruck prüft ob das niederwertigste Bit gesetzt ist und wenn nicht wird der if Zweig ausgeführt.

Ganz so beliebig wie du andeutest sind die beteiligten Operanden nicht es sollen schon Zahlentypen sein.


Th69 - Do 17.09.20 11:17

In diesem Fall wird einfach geprüft, ob der Wert gerade oder ungerade ist. Logisch ginge daher auch der Modulo-Operator hier:

C#-Quelltext
1:
if ((screenData[pos] % 2) == 0)