Hallo! Bin gerade ein wenig verwirrt, deshalb eine kurze Verständnisfrage: Ich möchte abfragen, ob lediglich ein Bit im Byte gesetzt ist, oder nicht. Die anderen Bits sollen bei der Abfrage vernachlässigt werden. Bsp.: Ich möchte im Byte namens PIF das erste Bit abfragen. Wenn gesetzt, dann mache... if((PIF&&0x01) {} Ist dieser Ansatz so richtig? Ich zweifele nämlich schon :-( Gruß
das passt schon was du da machst... du kannst dir aber auch ne temporäre variable zu hilfe nehmen char tmp; tmp = PIF; tmp &= 0x01 if(tmp){ //wenn bit 0 in PIF gesetzt ist } else{ // wenn bit 0 in PIF gelöscht ist }
Danke, für die schnelle Antwort: Aber... ja wie, dann adiere ich doch nur, oder nicht?
@sven ist das & nicht ne bitweise Addition?? zweimal das Ganze (&&) ist doch ne logische Abfrage. Also wenn wahr, dann ist ergebnis 1, oder?
nein, es ist eine bitweise UND-verknüpfung, und das doppelte && für logisch vergleiche... mit torstens code funktioniert es !!!
Die Logik dahinter ist: x = 9; x & 0x08 (4 Bit gesetzt?) entspricht: 00001001 & 00001000 ------------ 00001000 Das ist ungleich NULL und daher ist x& 0x08 gleich True. Andersherum: x = 3; x & 0x08 (4 Bit gesetzt?) entspricht: 00000011 & 00001000 ----------- 00000000 Das ist gleich Null, also Fals. Gecheckt ?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.