Bit in einen Byte setzen??
-
Hallo!
Wie kann ich ein Bit ( position i) in einen Byte setzen ( wert = 1) oder rücksetzen ( wert = 0)???
Hab bisher an nen XOR gedacht. Das geht aber nicht da wenn ich das Bit auf 0 setzen möchte ,und es ist schon auf 0 es zu ner 1 wird..Gruß
XRoads42
-
Setzen:
var |= 1<<Bitnummer; /* Bitnr ab 0 gezählt */
Löschen:
var &= ~(1<<Bitnummer);
Will man ohne Fallunterscheidung das Bit setzen (also ohne Prüfung, ob man Setzen oder Zurücksetzen muß), 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.
[ 09.07.2001: Beitrag editiert von: class CMarcus ]
-
Übrigens bedeutet '|' OR und '&' AND, nur als Anmerkung images/smiles/icon_wink.gif