Forum
Bit-Maskierung Aufgabe (Computertechnik)
» b=(a&0x08); /*Bit 5 und Bit 2-0 von a löschen */
0x08 enthält nur ein einziges gesetztes Bit. Also können durch diesen Ausdruck nicht 4 Bits verändert werden und die anderen 4 belassen werden.
» c=(a|0x30); /*Bit 5-4 von a setzen */
Sieht gut aus.
Allerdings wird nicht a verändert, sondern das Resultat in c abgelegt. Das kommt in den anderen Teilen auch so vor. Vielleicht ist das auch nur eine Schwäche in der Formulierung der Aufgabe. Es scheint ja eher auf die Bit-Mathematik anzukommen.
» d=(a^ox81); /*Bit7 und 0 von a invertieren*/
Das stimmt, bis auf die Schreibweise der Null.
» e= /*Bit 2-0 von a ersetzen durch g Bit2-0 */
Ersetzen geht z.B. durch Ausmaskieren der betreffenden Bits (ähnlich wie es oben bei b wohl gemacht werden soll) und das Verodern mit einem Wert, bei dem genau alle anderen Bits ausmaskiert sind.
» f= /*Bit6-4 von a ersetzen durch g Bit 2-0 */
Genauso, aber hier noch mit dem Bonus, dass die Bits rumgeschoben werden.
m
Gesamter Thread:
