Forum: Compiler & IDEs simples Problem


von Doran S. (utzer)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Doran S. (utzer)


Lesenswert?

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

von gast (Gast)


Lesenswert?

das problem besteht dann wenn der wert größer wie 16bit wird

die 2 8bitter fassen eben nich das volumen der 32bit variable

von Doran S. (utzer)


Lesenswert?

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
Noch kein Account? Hier anmelden.