Variable togglen
-
Hallo
Wollte es so machen:
Var!=Var;
aber das ist ja für den Vergleich.
So gehts auch nicht:Var=!Var;
Ich will einfach Var mit jedem Aufruf der Funktion zwischen 0 und 1 wechseln lassen.
Hab auch hier geschaut, aber Fehlanzeige.Steh ich grad auf dem Schlauch?
Danke für eure Hilfe.
-
Var = !Var; funktioniert doch. Wie und wo hast du denn Var deklariert?
-
Ich hatte die Deklaration vor der Main-Schleife als char Var; gemacht.
Da ich die Variable aber innerhalb eines Interrupts verändere hab ich noch ein volatile davorgesetzt und siehe da, jetzt funktioniert es.
-
var ^= 1;
Müsste auch gehn, oder?
-
Jawoll!
var = 0; // initialisieren mit 1 oder 0 ... var ^= 1; // wenn var == 0, dann wird var == 1 und umgekehrt
-
Genmutant schrieb:
var ^= 1;
Müsste auch gehn, oder?
naja, das verändert nur bit 0, dann haste noch die anderen bits frei für was anderes. a = !a erzwingt ja immer 0 oder 1, ist vielleicht die 'sichere' variante. ansonsten ginge noch a = ~a, das dreht dann alle bits auf einen schlag um. man hat schon ein bisschen auswahl, je nachdem, was besser passt.
-
Erzwingt a = !a wirklich 1 oder 0? Ich hatte vermutet dass das (theoretisch) nur zwischen 0 und !0 toggelt.
-
Danke Jungs.
So hab ich das gern.
Kleiner und kompakter Code for President!
-
Genmutant schrieb:
Erzwingt a = !a wirklich 1 oder 0?
macht es:
int a = 1234; // 1234 a = !a; // 0 a = !a; // 1 a = !a; // 0 ... usw.