Forum: Compiler & IDEs Integer Bitweise auslesen?


von yekomz (Gast)


Lesenswert?

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?

von yalu (Gast)


Lesenswert?

In C kann man mit z & 0x80 das oberste Bit prüfen und dann den Wert
mit z <<= 1 ein Bit nach links schieben.

von yekomz (Gast)


Lesenswert?

dh:

if(z & 0x80) sagt mir ob das 7. bit gesetzt ist ?


und danke für die antwort

von yalu (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.