Forum: Compiler & IDEs Bitmasken??


von Sebastian (Gast)


Lesenswert?

Wie wende ich Bitmasken an?
Z.B. die letzen 3 Bit eines Bytes sind das Parameter die erster 5 Bit
ergeben den Befehl (beim LCD).
Datenbyte = 0b00000101
Bitmaske  = 0b11010000

rauskommen soll dann 0b11010101

funzt mit or / xor aber wie genau???

von Peter D. (peda)


Lesenswert?

Es geht beides.

Peter

von Stefan Kleinwort (Gast)


Lesenswert?

In Deinem Beispiel ist das Ergebnis gleich.

Bei OR ist das Ausgangsbit immer 1, wenn MINDESTENS ein Eingangs-Bit 1
ist.
Bei XOR ist das Ausgangsbit 1, wenn GENAU ein Eingangsbit 1 ist.

Also: ODER:

Datenbyte = 0b00000101
Bitmaske  = 0b11010000
----------------------
Ergebnis =  0b11010101

Datenbyte = 0b11010101
Bitmaske  = 0b11010000
----------------------
Ergebnis =  0b11010101


Und bei XOR:

Datenbyte = 0b00000101
Bitmaske  = 0b11010000
----------------------
Ergebnis =  0b11010101

Datenbyte = 0b11010101
Bitmaske  = 0b11010000
----------------------
Ergebnis =  0b00000101


Sonderfall: negieren mit XOR:

Datenbyte = 0b00000101
Bitmaske  = 0b11111111
----------------------
Ergebnis =  0b11111010

Alles klar?

Stefan

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.