Forum: PC-Programmierung Operatoren in C


von Peter (Gast)


Lesenswert?

Hallo!

Ich habe einen C-Code bei dem ich zwei Oberatoren nicht verstehe.
Ich weis nicht was hier ausgeführt wird:

#define LED 1
#define SWITCH 2

main(){  TRISC |= (1<<SWITCH)
         TRISC &= ^(1<<LED)
      }

Kann mir da bitte jemand weiterhelfen?

von Björn C. (bjoernc) Benutzerseite


Lesenswert?

Es wäre schön zu wissen, welche Operatoren du nicht verstehst!
1
TRISC |= (1<<SWITCH)
2
TRISC = TRSIC | (1<<SWITCH)
Also der operator << bedeutet das ein Bit also in dem Falle die eins um 
SWITCH stellen nach links geschiftet wird.
Der Operator | bedeutet eine ODER-Verknüpfung.

Bei folgendem Code:
1
TRISC &= ^(1<<LED)
2
TRISC = TRISC & ^(1<<LED)
Hier bedeutet & eine UND-Verknüpfung und das ^ eine X-Oder verkünpfung!

von Peter (Gast)


Lesenswert?

Achso, ok! Danke!
Jetzt ist mir das klar!

von Stefan E. (sternst)


Lesenswert?

Björn Cassens schrieb:
> und das ^ eine X-Oder verkünpfung!

Richtig, und deshalb macht die zweite Zeile nicht nur keinen Sinn, sie 
kompiliert noch nicht mal. Das ^ sollte eigentlich ein ~ sein.

von Peter (Gast)


Lesenswert?

Stimmt, da hast du recht!
Habs mir auch gerade gedacht, dass die zweite Zeile dann überhaupt 
ziemlich sinnlos wäre!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.