Gast
#2474364
ich habe mal eine frage an die experten, ich möchte eine Variable toggeln var = !var; // schaltet ja auch immer zwischen 0 und 1 um,meine Frage ist kann mir das !var erklären vielen dank
|
Anzeige
|
erklärung zu !
Gast
#2474364
ich habe mal eine frage an die experten, ich möchte eine Variable toggeln var = !var; // schaltet ja auch immer zwischen 0 und 1 um,meine Frage ist kann mir das !var erklären vielen dank ! negiert einen logischen Ausdruck. Also wird das rechts davon als logischer Ausdruck untersucht. Das bedeutet in C immer einen Test auf ungleich 0, var=!var heißt also in etwa:
Gast
#2474384
! ist ein logisches NICHT beliebige Zahl ungleich 0 -> 0 0 -> 1 (als Stellvertreter für eine Zahl ungleich 0) Steht übrigens auch in jedem beliebigen C-Buch diewodaso schrieb: > http://www.mikrocontroller.net/articles/Bitmanipulation > > mfg Nein, das ist hier keine Bitmanipulation! Wenn dir das ! nicht geheuer ist (was es nicht sein sollte), dann kannst
du das Toggeln auch ganz konventionell mittels
var = 1 - var;
erreichen.
Wenn var gleich 1 ist, dann ergibt 1 - 1 eine glatte 0
Und wenn var dann 0 ist, dann berechnet sich 1 - 0 zu 1
So kann man dann zb auch zwischen 0 und 5 toggeln
var = 5 - var;
Gast
#2474423
Man könnte auch einfach verexlusiv-odern.
Grüße, Ingo könnte man, aber das wäre nicht unbedingt dasselbe. Nochmal: ! ist keine Bitmanipulation. Ingo schrieb: > Man könnte auch einfach verexlusiv-odern. > var ^= var; eher
Das wäre dann immer noch nicht dasselbe wie var=!var, aber schon näher dran :-) var = var ? 0 : 1; Wenn jetzt jemand fragt, was es mit ? auf sich hat, verweise ich auf mein erste Antwort und das Spiel geht von vorne los :-) (Womit wir beim Thema Rekursion angelangt wären.)
Gast
#2474629
Klaus Wachtler schrieb: > Nein, das ist hier keine Bitmanipulation! Als wieder was gelernt Dankeschön!
Gast
#2474636
Rolf Magnus schrieb: > var = var ? 0 : 1; Var oder nicht Var, das ist hier die Frage.
Gast
#2474640
weihnachtstroll schrieb: > Var oder nicht Var, das ist hier die Frage. Der is GUT :-) diewodaso schrieb: > weihnachtstroll schrieb: >> Var oder nicht Var, das ist hier die Frage. > > Der is GUT :-) :-) was macht ein Computer, wenn er nicht einschlafen kann while( !sleeping ) sheep++; er zählt Schäfchen.
Gast
#2474730
Karl Heinz Buchegger schrieb: > while( !sleeping ) > > sheep++; Da wird der Watchdog zum Schäferhund ;) avr Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|