Forum: Compiler & IDEs 'richtiges' Bitsetzen [geklärt]


von Raoul D. (Gast)


Lesenswert?

Hallo.

Im AVR-GCC Tutorial steht, man setzt bzw. löscht ein Bit im Register x 
so:

 x |= (1 << Bitnummer);
 x &= ~(1 << Bitnummer);

Nun habe ich im AVR-Studio Simulator folgende Schreibweise ausprobiert

 x = (1 << Bitnummer);
 x = (0 << Bitnummer);

und bin auf das selbe Ergebnis wie beim ersten Verfahren gekommen.

Nun meine Frage: Warum einfach, wenns auch umständlich geht? Gibt es 
einen besonderen Grund für das eher unansehnliche Verfahren?

mfg

von Robert S. (razer) Benutzerseite


Lesenswert?

x |= (1 << Bit) ist equivalent zu x = x | (1 << Bit). Das heißt es wird 
nur Bit gesetzt. die anderen bleiben unberührt.

Wenn du x = (1 << Bit) schreibst, wird Bit gesetzt und die anderen auf 0 
gesetzt.

Das gleiche dann auch beim Löschen.

von Raoul D. (Gast)


Lesenswert?

Ach, so ist das. Danke für die schnelle Antwort.

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.