Forum: Mikrocontroller und Digitale Elektronik Frage zu C++


von IcedEarth (Gast)


Lesenswert?

Hallo ihr,

kann mir bitte einer entschlüsseln was es mit:

val=(val&0x02)?(val&(~0x02)):val|0x02;

bzw:

LCD_DATA=(LCD_DATA & 0xf) | (lcd_data & 0xf0);

aufsich hat???

Das sind zwei Zeilen aus verschiedenen Programmen, meiner Meinung nach
machen die zwei was ähnliches.
Was genau hat es mit '?', '&', und '|' aufsich? In meinem Buch
steht darüber nicht wirklich was drin und danach googeln ist auch nicht
so einfach.

Bitte helft mir,

Gruß,
Jürgen

von A.K. (Gast)


Lesenswert?

"val=(val&0x02)?(val&(~0x02)):val|0x02;"

val ^= 0x02;

von Marius (Gast)


Lesenswert?

Hallo
 & | ^ sind Bit-Operatoren in c/c++.

& ist der bitweise UND Operator
| steht für (inklusiv) ODER

z.b auf seite
http://www.mathematik.uni-marburg.de/~cpp/grundlagen/operatoren_bit.html
nachzulesen (hab ich schnell mit google gefunden)..

? : ist eine andere schreibweise für If.
1
if (val&0x02)
2
   val = val&(~0x02);
3
else
4
   val = val|0x02;
ist eine andere schreibweise für
1
val=(val&0x02)?(val&(~0x02)):val|0x02;

Hoffe ich konnnte dir helfen.

von IcedEarth (Gast)


Lesenswert?

Ah, sehr gut!!!

hm schnell finden, wenn man weiss wonach man suchen muss...

Ich Danke dir!

MFG,
Jürgen

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.