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


Anmelden zum Antworten