PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : testen ob das x bit gesetzt ist???



24dan
18-05-2006, 11:57
Hallo ...
ich würde gerne wissen ob bei meiner Testzahl das x z.B 8 Bit gesetzt




uint8_t Testzahl;

if (Testzahl&16) ...



ist das so richtig?:eek: :eek:

bmann
18-05-2006, 13:31
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


if (zahl & (0x01 << 7)) {
// Bit 7 (d.h. 8. Bit) gesetzt
}


CU
Andi

24dan
18-05-2006, 14:23
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?


signed long int *pointer;
uint8_t buffer[4];

pointer = (signed long int *) buffer;

if (*pointer & 0x01<<30){ das 31.Bit ist gesetzt}