Bitschieberei



  • Nehmen wir an, ich habe folgende Bitfolge:
    1111.1101.1111.0000

    Jetzt möchte ich die niederwertigen Bits 4 bis 9 in einen 8Bit breiten Typ kopieren.

    1111.11>>01.1111<<.0000

    Wenn ich jetzt einfach 4 Stellen nach rechts shifte, habe ich ja noch die 2 Bits bis zum vollen Byte dabei. Ich könnte 2 mal jeweils um 2 Stellen shiften, und hätte ein korrektes Ergebnis. Wie macht man das "fachmännisch" ?



  • Ausmaskieren mit AND
      1111.1101.1111.0000
    & 0000.0011.1111.0000
    = 0000.0001.1111.0000 //Nu haste die gesuchten Bits
    
    Und shiften
       0000.0001.1111.0000
    >> 4
    =  0000.0000.0001.1111
    

    Oder erst shiften und dann maskieren.



  • Mhmm eigentlich ganz logisch ... danke


Anmelden zum Antworten