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

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