16bit -> 2x8bit zahl

Gast #310525
Lesenswert?

...Und vor allem: Mit welchen Mitteln soll das geschehen (Welche
Programmiersprache, denn ich denke mal, dass die Frage im Zusammenhang
mit Programmierung steht?!?)? Ohne die Information ist eine (sinnvolle)
Beantwortung der Frage nicht möglich!
Gast #310526
Lesenswert?

Entweder du arbeitest mit Unionen oder du machst es mit einer
UND-Verknüpfungen und dann schieben.

int16 var16;
int8 var81; //lower Byte
int8 var82; //higher Byte

var81 = var16&0xff;
var82 = (var16>>8)&0xff;

mfg Schoasch
Gast #310532
Lesenswert?

@Markus_8051
>Keine Vorteile?
> Doch, so ist das wesentlich schneller!

Ok, geb ich zu. Das war etwas unüberlegt.

> Reihenfolge hängt von Architektur ab, aber die sollte ja bekannt
> sein

Stimmt sicherlich für ein aktuelles Projekt. Wenn Du so etwas aber in
Module einbaust, die Du oder ein anderer später für eine andere Arch.
weiterverwendet gibt's Probleme. Besonders wenn man es nicht erwartet
weil man z. B. von einer ARM-Arch zu einer anderen wechselt.

Wenn man trotzdem den Geschwindigkeitsvorteil (ich geb's ja zu ;-)
nutzen will könnte man konsequent Macros einsetzen

So in etwa

#define LO_BYTE(a) *((unsigned char *)&(a))
#define HI_BYTE(a) *(((unsigned char *)&(a))+1)

oder so ähnlich

Viele Grüße

   Dirk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren