Hallo ...
ich würde gerne wissen ob bei meiner Testzahl das x z.B 8 Bit gesetzt
ist das so richtig?Code:uint8_t Testzahl; if (Testzahl&16) ...
Hallo ...
ich würde gerne wissen ob bei meiner Testzahl das x z.B 8 Bit gesetzt
ist das so richtig?Code:uint8_t Testzahl; if (Testzahl&16) ...
Geändert von 24dan (18-05-2006 um 12:07 Uhr)
...der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott. (Werner Heisenberg 1901-1976, Nobelpreisträger für Physik)
debian on acer travelmate c300: http://adweb.desy.de/~kaemtner/
Hi
16 = 2^4, also ist das das Bit 4, bzw. das 5. Bit.
Um das 8. Bit zu testen brauchst du 2^7, also 128.
Es ist aber üblicher und komfortabler das als HEX Zahlen zu schreiben, also etwa 0x80 statt 128. Aber lesbarer ist dann wohl sowas
CUCode:if (zahl & (0x01 << 7)) { // Bit 7 (d.h. 8. Bit) gesetzt }
Andi
Danke ...
ich habe jetzt noch einen Array der 4 byte groß ist bei dem kann ich jetzt ja auf 32 Bit testen.
Ich lese jetzt also aus einem long int pointer auf den Anfang des Array[4] den Adressbereich aus und prüfe das dann auf die gesetzten bit.
Ist das so möglich?
Code:signed long int *pointer; uint8_t buffer[4]; pointer = (signed long int *) buffer; if (*pointer & 0x01<<30){ das 31.Bit ist gesetzt}
Geändert von 24dan (18-05-2006 um 15:25 Uhr)
...der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott. (Werner Heisenberg 1901-1976, Nobelpreisträger für Physik)
debian on acer travelmate c300: http://adweb.desy.de/~kaemtner/
Lesezeichen