Schüler schrieb:
> 8Data = { (uint8)((0x0003E8 & 0x00FF0000) >> 16U),
> (uint8)((0x0003E8 & 0x0000FF00) >> 8U),
> (uint8)((0x0003E8 & 0x000000FF) >> 0U) }
Welche Programmiersprache ist das? Sieht zwar nach C aus, aber
C-Variablen beginnen immer mit einem Buchstaben: 8Data geht nicht.
Ansonsten:
1. Zeile
UND-Verknüpfung von
0x000003E8 (habe vorne noch zwei '0' hinzugefügt)
0x00FF0000
-----------
= 0x00000000
dann schieben um 16 Bit nach rechts, ändert nichts, bleibt 0x00000000.
dann Casting auf uint8: die linken 24 Bit werden abgeschnitten, bleibt
0x00.
2. Zeile, gleiches Vorgehen
UND-Verknüpfung von
0x000003E8 (habe vorne noch zwei '0' hinzugefügt)
0x0000FF00
-----------
= 0x00000300
dann schieben um 8 Bit nach rechts, ändert nichts, bleibt 0x00000003.
dann Casting auf uint8: die linken 24 Bit werden abgeschnitten, bleibt
0x03.
3. Zeile
UND-Verknüpfung von
0x000003E8 (habe vorne noch zwei '0' hinzugefügt)
0x000000FF
-----------
= 0x000000E8
dann schieben um 0 Bit nach rechts, also nicht schieben,
dann Casting auf uint8: die linken 24 Bit werden abgeschnitten, bleibt
0xE8.
Man hat also das 24-Bit-Wort in drei Teile aufgeteilt, die unteren, die
mittleren und die oberen 8 Bit.