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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.