Bitshift: 4x uint8_t in einen uint32_t
-
Hallo!
Mit folgendem Code hab ich einen uint32_t in 4 uint8_t zerstückelt:
int i = 0; for (i = 0; i <= 7; i++){ byte_array[i][0] = (uint8_t) tmp_array[i]; byte_array[i][1] = (uint8_t) (tmp_array[i] >> 8); byte_array[i][2] = (uint8_t) (tmp_array[i] >> 16); byte_array[i][3] = (uint8_t) (tmp_array[i] >> 24); }
Jetzt möchte ich ihn aber wieder zurückhaben :p
Mein verzweifelter Ansatz wäre für jedes der 8 uint32_t´sint i = 0; for(i = 0; i <= 3; i++){ // für jedes Teil-Byte teilbyte = // ??
Könnt ihr mir kurz sagen, wie ich denn meinen kompletten uint32_t wieder zurückbekomme?
Viele Grüße und Dank!
Stefan
-
Angenommen teilbyte[0] bis teilbyte[3] sind deine Stücke die du wie gezeigt erzeugt hast:
ergebnis = teilbyte[0] + teilbyte[1] << 8 + teilbyte[2] << 16 + teilbyte[3] << 24;
Manchmal ist das Leben einfacher als man denkt
-
Danke SeppJ für die schnelle Antwort!