Forum: Mikrocontroller und Digitale Elektronik Bitoperation Formel umstellen


von fliege (Gast)


Lesenswert?

Hi,
in einer Bitoperation setze ich die beiden Bytes d1 und d2 zu x 
zusammen:

x = d2 << 8 | d1

34 << 8 | 12 = 1234 (alles hex)

Wie stellt man die obere Formel um? Ich habe z.B. 0xfffffffff1234 und 
möchte erstmal die letzten 4 Ziffern isolieren (0x1234) und in d1 und d2 
aufteilen.

von Klaus W. (mfgkw)


Lesenswert?

d1 = x & 0xFF;
d2 = ( x >> 8 ) & 0xFF;

von Klaus W. (mfgkw)


Lesenswert?

Nachtrag: Wenn d1 und d2 ohnehin nur 1 Byte groß sind (z.B. uint8_t),
dann geht es auch einfacher:
d1 = x;
d2 = x >> 8;

von fliege (Gast)


Lesenswert?

Danke, funktioniert alles. :-)

Ich habe die zuerst genannten Formeln benutzt. Kannst Du vielleicht noch 
kurz erklären, was genau die Verundung von x mit 0xff macht?

von Karl H. (kbuchegg)


Lesenswert?


von Öh (Gast)


Lesenswert?

Sollte es nicht so sein?

34 << 8 | 12 = 3412

bzw.

12 << 8 | 34 = 1234

von Klaus W. (mfgkw)


Lesenswert?

Sicher, aber war eh nur ein Beispiel; was solls!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.