Forum: Compiler & IDEs Typumwandlung 16 zu 8 bit


von CAnfänger (Gast)


Lesenswert?

Hallo, welche Vorgehensweise empfehlt Ihr für folgende einfache 
Umwandlung:

uint16_t xxyy;
uint8_t xx;
uint8_t yy;

xxyy = 0xAABB

(hier typumwandlung, schieben, geleiche Speicheradresse oder was ist am 
Besten, so daß danach..)

xx == 0xAA
und
yy == 0xBB

ist?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

So:
yy = (uint8_t)xxyy;
xx = (uint8_t)(xxyy>>8);

von CAnfänger (Gast)


Lesenswert?

ok, danke. Kann man es auch durch die Variablendeklaration erreichen, 
daß yy von der Adresse her auf das niederwertige Byte und xx auf das 
höherwertige Byte von xxyy zeigt? Also wenn ich xx und yy nur lesen 
will..?

von Johannes M. (johnny-m)


Lesenswert?

CAnfänger wrote:
> ok, danke. Kann man es auch durch die Variablendeklaration erreichen,
> daß yy von der Adresse her auf das niederwertige Byte und xx auf das
> höherwertige Byte von xxyy zeigt?
Mit einer union kannst Du das machen. Die Reihenfolge der Bytes ist 
aber Plattformabhängig und man muss damit ein bisschen vorsichtig 
sein...

von CAnfänger (Gast)


Lesenswert?

ok, dann mach ich es lieber so wie oben.

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.