Bitzugriff auf eine long
-
Hallo Leute,
ich muss eine Abfrage programmieren um zu überprüfen ob bei einer INT32 mit Inhalt
0xB096 an der Stelle 10 das Bit gesetzt ist oder nicht.Kann mir jemand da weiterhelfen?
Gruss
Sebastian
-
int a = 0xb096; if (a & (1 << 10)) bla
-
Danke vielmals, das hat mir schon mal weitergeholfen ich bin auf dem Gebiet absoluter Neuling,
weisst du auch wie man ein Bit an der Stelle 10 setzt, rücksetzt, löscht
Viele Fragen aufeinmal
-
Naja, es gibt ja noch mehr Bitoperationen.
Das war jetzt ein Binäres Und. Das heißt, es wird für jede Stelle das Boolesche Und der Stelle in den beiden Operanden gebildet.
Die anderen Operationen sind ^ (Exklusives Oder) (braucht man aber für einfache Sachen nicht) und | (Oder). Nun musst du dir nur noch eine Maske dafür bauen:
Wenn du zB das 10. Bit setzen willst heißt das, das die entsprechende boolesche Operation an einer zusätzlichen Stelle, nämlich der 10., zu 1 auswerten soll.
=> a | (1 << 10)Das Rücksetzen kannst du dadurch erreichen, dass du analog zu vorigem forderst, dass es an einer bestimmten Stelle auf jeden Fall zu 0 auswertet.
=> a & ~(1 << 10)~ bedeutet Negation, also kippen aller Bits.
-
Jo vielen Dank! Ich denke ich komm damit jetzt schon ganz gut klar
Gruss