Bit in einem Byte setzen

Setzen

var |= 1«Bitnummer; /* Bitnr ab 0 gezählt */

Löschen

var &= ~(1«Bitnummer);

Fallunterscheidung

Will man ohne Fallunterscheidung das Bit setzen (also ohne Prüfung, ob man Setzen oder Zurücksetzen muss), dann geht das so:

val &= ~(1«Bitnummer));
val |= Bitwertigkeit«Bitnummer;

Der Trick: zuerst löschen und danach mit dem Bitwert verodern.
Ist es 1, dann ist es ein Setzen wie zuvor gezeigt.
Ist es 0, dann ergibt a | 0 = a, bleibt also zurückgesetzt.




Kai Neugebauer 2022/10/18 20:00 → 218

Zuletzt geändert: le 2022/10/28 10:14