Bitoperationen Frage



  • Hey,

    angenommen ich habe ein Byte das so aussieht:

    A:

    01 000100
    

    und ein anderes Byte:

    B:

    00 111010
    

    Jetzt sollen die ersten 6 Bits (rechts ist das niedrigstwertigste) von Byte A die ersten 6 Bit von Byte B "ersetzen".

    Mir sind die verschiedenen Bitoperationen bekannt, ich komme hier aber nicht wirklich weiter. Ich kann die ja nicht wirklich verunden/verodern, da je nachdem ein Bit gesetzt oder "ungesetzt" werden soll.

    Meine Idee war bisher bei jedem Bit von B zu prüfen ob es 1 oder 0 ist und dann eine passende und/oder Operation auszuführen. Das ist natürlich ziemlich umständlich, geht das auch einfacher?



  • b = (b & 11 000000) | (a & 00 111111);
    


  • Belli schrieb:

    b = (b & 11 000000) | (a & 00 111111);
    
    b = (b & 0xC0) | (a & 0x3F);
    

    Falls es auch kompilieren soll. 😉


Anmelden zum Antworten