Forum: Mikrocontroller und Digitale Elektronik 16 Bit (versch. Bitstellen) aus 32 Bitregister


von Tom (Gast)


Lesenswert?

Hi,
ich muss zum Portauslesen aus einem 32 Bit Portregister 16 Bit von
verschiedenene Bitstellen zu einem 16 Bitwert zusammenfügen.

Z.B.:
hier mit 16Bit->8Bit Beispiel dargestellt.
Brauche also z.B. die unterstrichenen 8 Bit.

Register = 1111 0011 0011 1111
->         ----   -- --
benötigt = 1111 1100

Programmiere in C und suche elegante Lösung bei der auch der
compilierte code möglichst schnell ausgeführt wird. Also code, der
möglichst kleinen Assembler code ergibt

Ich würde es mit Maskieren und Bitschieben realiren, vielleicht hat
aber einer ne bessere Lösung.
MfG

von peter dannegger (Gast)


Lesenswert?

Y = ((X>>8) & 0xF0) | ((X>>6) & 0x0F);

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.