Zitat Zitat von Barthimaeus
X = (1 << 2)|(1<<0)
Und wenn ich mit einem solchen Konstrukt 7 von 8 Bits in einem Byte setzten möchte wird das ganze dann ziemlich lang, oder?
Vielen dank an alle für die bisherigen, sehr aufschlussreichen erklärungen!
Ja, aber thats C
Es gibt auch noch die inoffizielle Syntax mit 0b01101001, das ist aber nur in WinAVR eingepatcht und gehört nicht zum C-Standard.

Der Vorteil besteht darin, dass du zum Bleistift bei einer Initialisierung:
Code:
UCSR0B = (1 << RXCIE0)|(1 << RXEN0)|(1 << TXEN0);
Schnell siehst, welche Bits (und damit Funktionen) gesetzt werden.

mfG
Markus

PS: Und wenn du sieben von acht Bits setzen willst: X = ~(1<<Nicht_Gesetztes_Bit);
\/