Hallo, ich bin ja noch Anfänger in C und ich habe mal wieder ein simples Problem: in einem "uint32_t" mit dem Namen "N" ist der Wert 1953 (=11110100001) nun möchte ich die letzten 8 bits in die Variable "int Nb" kopieren. und die restlichen in die Variable "int Na"(In diesem Fall "111"). ich habe es nun schon so versucht: Na=(N<<8); Nb=N; Doch irgentwie geht das nicht, weiß jemand woran das liegt, und was ich falsch mache? Doran
Doran S. schrieb: > in einem "uint32_t" mit dem Namen "N" ist der Wert 1953 (=11110100001) > nun möchte ich die letzten 8 bits in die Variable "int Nb" kopieren.
1 | Nb = (uint8_t)N; |
oder
1 | Nb = N & 0xFF; |
> und die restlichen in die Variable "int Na"(In diesem Fall "111").
Ne, 24 Bit kriegst Du nicht in ein int (16Bit) rein.
Peter
Hallo, erstmal vielen Dank für deine Antwort. Ich habe es nun so gemacht: Na=(N>>8); Nb=N; Das macht auch das, was ich vorhatte... Vielleicht hast du nicht genau verstanden, was ich meinte. Aber so funktioniert es nun. Doran
das problem besteht dann wenn der wert größer wie 16bit wird die 2 8bitter fassen eben nich das volumen der 32bit variable
achso, ok, jetzt verstehe ich das erst.... :-) Dann danke für den Hinweis! Doran
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.