Hi zusammen! Ich habe ein Datenwort mit 32Bit Länge - das möchte ich nun in Bytes umbasteln. Hier gibt es ja mehrere Möglichkeiten, mit Pointer und ohne - der Einfachheit halber lieber ohne Pointer. Aber hier gehen ja auch noch verschiedene Sachen... Also:
1 | uint32_t data = 83749; // nur als Beispiel |
2 | uint8_t bytes[4]; |
3 | |
4 | // Variante 1:
|
5 | |
6 | bytes[0] = (uint8_t) (data >> 24); |
7 | bytes[1] = (uint8_t) (data >> 16); |
8 | bytes[2] = (uint8_t) (data >> 8); |
9 | bytes[3] = (uint8_t) data; |
10 | |
11 | // Variante 2:
|
12 | |
13 | bytes[0] = (data >> 24) & 0xFF; |
14 | bytes[1] = (data >> 16) & 0xFF; |
15 | bytes[2] = (data >> 8) & 0xFF; |
16 | bytes[3] = data & 0xFF; |
17 | |
18 | // geht auch sowas:
|
19 | |
20 | bytes[0] = (data & 0xFF000000); |
21 | bytes[1] = (data & 0xFF0000); |
22 | bytes[2] = (data & 0xFF00); |
23 | bytes[3] = data & 0xFF; |
Oder gibt es eine noch bessere Möglichkeit?