8Bit Wert in 8 einzelne Bits aufteilen???
-
Hi,
ich habe folgendes Problem und zwar lese ich aus eine I/O Karte einen 8Bit breiten Wert aus der in eine Variable(ULONG) geschrieben wird. Ich will aber nur ein bestimmtes Bit von den 8Bits auslesen. Wie kann ich den 8Bit breiten Wert in 8 einzelne Bits aufteilen, um mir so mein passendes raus zu suchen??
Hoffe ist verständlich ausgedrückt.
Gruß Ronn
-
das geht mit logischen Operatoren, passt wohl eher ins C++ - Abteil
-
Ja da habe ich auch geposted, dachte doppelt hält besser.
-
Servus,
Versuchs mal mit dem & Operator
int bit0 = buffer & 0x01;
Wenn bit0 = 1 dann wird im buffer wohl das erste bit gesetzt sein.
mfg
Hellsgore
-
zum Bitfuchsen benutze ich folgende Funktion (aus dem Kopf hingeschrieben, also u.U. fehlerhaft):
int GetBit( unsigned char the_byte, int bitnummer ) { unsigned char maske; //erst mal eine Maske erzeugen, um das gewünschte Bit rauszuUNDen. maske = 1 << (bitnummer-1); //Bitnummern laufend ab 1 gezählt //maske = 1 << bitnummer; //Bitnummern laufend ab 0 gezählt return !!(the_byte&&maske); //das !! macht 0 zu 0 und !=0 zu 1 }
-
Danke für die Antworten habe im anderen Thread schon meine lösung bekommen.
Gruß