Der Martin: BCD-Kodierung?

Beitrag lesen

Hi Daniel,

byte wert = (version & (255 << i * 8)) >> i * 8;
i ist das auszulesende byte (erstes byte: i = 0)

Also erst ein 1-Byte (255) an die Stelle des auszulesenden Bytes shiften, dann und-Verknüpfen mit der Version und dann das ergebnis wieder zurück-shiften (um die überflüssigen 0-Bits loszuwerden).

Warum so kompliziert? Andersrum ist es einfacher, dann brauchst du nur noch einmal zu schieben:

b = (version>>(8*i)) & 0xFF

Erst alles nach rechts schieben, dann die gewünschten Bits mit einer konstanten Maske isolieren.

Ciao,
 Martin

--
Lache, und die Welt wird mit dir lachen.
Schnarche, und du schläfst allein.