bits zusammenschieben - geht's einfacher?



  • hallo,
    eine blöde schaltung schickt mir ein byte als 2 bytes, wobei jedes bit doppelt ist. ich schiebe das ganze wieder zu einem byte zusammen:

    ...
    unsigned char x = (byte1 & 0x80) | (byte1 & 0x20)<<1 | (byte1 & 0x08)<<2 | (byte1 & 0x02)<<3 | (byte2 & 0x80)>>4 | (byte2 & 0x20)>>3 | (byte2 & 0x08)>>2 | (byte2 & 0x02)>>1;
    ...
    

    das sieht mir zu kompliziert aus. geht es auch einfacher?



  • Wenn du die Schaltung beeinflussen kannst, würde ich dort noch ein Zwischensystem einbauen, das diese "blöde schaltung" umkehrt (jeweils zwei Bit per AND zusammenfassen), ansonsten fällt mir nichts optimaleres ein.



  • CStoll schrieb:

    Wenn du die Schaltung beeinflussen kannst, würde ich dort noch ein Zwischensystem einbauen, das diese "blöde schaltung" umkehrt (jeweils zwei Bit per AND zusammenfassen), ansonsten fällt mir nichts optimaleres ein.

    danke, hat sich erledigt. hab' nen widerstand in die blöde schaltung eingelötet. jetzt muss nix mehr zusammengeschoben werden 😉


Anmelden zum Antworten