uint64 wert in uint8 array

Gast #5851728
Lesenswert?
• ▲
▼
Hallo,
ich habe mal eine Frage.
ich habe eine Variable in uint64. Diese möchte ich gerne in einen 8 byte 
langen Array uint8 packen.
z.B.
0x9e884dd9d83d8588
in
array[8] = {0x9e, 0x88, 0x4d, 0xd9, 0xd8, 0x3d, 0x85, 0x88}

momentan mache ich es in einer for-schleife
1
    for(uint8 x=0; x<8; x++)
2
    {
3
        transformedValue[x] = (uint8)((value>> (56 - 8*x))& 0xFF);
4
    }

gibt es da einen anderen weg? ohne schleife? (und ohne alle elemente 
untereinander zu schreiben?)

eigentlich ist doch transformedValue das gleiche wie value, nur anders 
dargestellt.
Gast #5851746
Lesenswert?
• ▲
▼
Bernd K. schrieb:
> Auf einem Little endian Prozessor kommst Du nicht umhin erstmal die
> Endianness umzudrehen um es in Big-Endian-Format ins Array zu schreiben,
> also direkt auf einen Rutsch geht schonmal nicht.

schade.
Hatte es auch mit memcpy probiert
1
memcpy(transformedValue, &value, sizeof(value));

dann war transformedValue aber verdreht.

Dann belasse ich es bei der schleife

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.