will mit dem low nible Wert eines bytes weiterarbeiten, jedoch kriege ich den Wert nicht. Was mach ich falsch? uint8_t byte; // Variabler inhalt uint8_t lownibble; if(ein bestimmter Wert erreicht) { lownibble = byte & 0x0f; // lownibble aus byte extrahieren (tu was mit lownibble) } mit dem obigen code erhalte ich doch den Wert des lownibble.
Rafi Dafi schrieb: > if(ein bestimmter Wert erreicht) > { > lownibble = byte & 0x0f; // lownibble aus byte extrahieren > (tu was mit lownibble) > } > > mit dem obigen code erhalte ich doch den Wert des lownibble. Wenn Deine Bedingung "bestimmter Wert erreicht" zutrifft, ja. Der Ausdruck byte & 0xF liefert die unteren vier Bits von "byte", das ist soweit korrekt.
@ Rafi Dafi (alexanderw) >Was mach ich falsch? Der Fehler liegt woanders, deine Maskierung ist OK, siehe Bitmanipulation.
Falk Brunner schrieb: > Der Fehler liegt woanders, deine Maskierung ist OK, siehe > Bitmanipulation. von da hab ich ja auch die infos hergehollt. nach dem was ich gelsen hab muss das doch richtig sein. oder hab ich einen anhaltspunkt übersehen?
Sieht völlig OK aus. Falls noch Schwierigkeiten bestehen ist das Maskieren in diesem Video gut erklärt: http://et-tutorials.de/1908/bitweise-manipulation/
Was verstehst du unter "jedoch kriege ich den Wert nicht"? Welche Wert kriegst du stattdessen und woran erkennst du das?
hat sich geklärt. hab übersehen das er mir nicht den Wert als die auf der Konsole ausgeben wird sondern, de dahinter stehende ASCII code, in diesem Fall war es 0x05. Also Enquiry, deswegen hater mir auch nichts angezeigt. closed!
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.