Hallo, ich möchte gerne bei einem 8bit-integer jedes einzelne bit auslesen um es vergleichen zu können, so wie man es mit den registern machen kann. zb: uint8_t z = 0b00001111; dabei möchte ich jetzt wissen ob das bit 0-7 gesetzt ist oder nicht.in assembler kann man das mit "rol" machen und dann das carryflag auslesen. weiss jemand wie ich das in c machen könnte?
In C kann man mit z & 0x80 das oberste Bit prüfen und dann den Wert mit z <<= 1 ein Bit nach links schieben.
dh: if(z & 0x80) sagt mir ob das 7. bit gesetzt ist ? und danke für die antwort
Ja. Der &-Operator mach eine bitweise Und-Verknüpfung. z & 0x80 ergibt 0x80, wenn Bit 7 in z gesetzt ist, sonst 0x00. In Bedingungen wird alles, was von 0 verschieden ist, als wahr betrachtet. Deswegen kann man das so machen.
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.