Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
You are viewing an older revision! See the latest version
Bitmanipulationen Beschreibung
Die Manipulation einzelner Bits ist vorwiegend in der Mikrocontrollertechnik gebräuchlich, da digitale Pins entsprechend geschaltet oder gelesen werden sollen, bestimmte Registerinhalte bzw. nur einzelne Positionen in den Registern geändert, gesetzt, gelöscht oder gelesen, o.ä. werden sollen. Hierfür dienen die Bitweisen Operatoren die auf ein oder zwei Bitfolgen oder Binärzahlen auf der Ebene einzelner Bits angewendet werden. Außerdem sind bitweise Operationen etwas schneller als Additions- und Subtraktionsoperationen und deutlich schneller als Multiplikations- und Divisionsoperationen. Folgende Operatoren werden eingesetzt:
~ | bitwise INVERT |
& | bitwise AND |
| | bitwise OR |
^ | bitwise XOR |
Verwechslung!
Die Bit-Operationen dürfen nicht mit den Logischer Operatoren verwechselt werden, deren Ergebnis immer eine logische 0 (false) oder 1 (true) ist.
Maskieren¶
In diesem Zusammenhang kommt oft der Begriff der Maske bzw. Maskieren vor. Einer Maske definiert, welche Bits behalten bzw. welche Bits gelöscht werden sollen.
Z.B. die Extraktion einer Teilmenge der Bits in den Wert:
Maske: | 00001111b |
Wert: | 01010101b |
Wir eine AND-Verknüpfung angewendet so bleibt vom Wert nur mehr das untere Nibble übrig und das obere Nibble, also die oberen vier Bits werden gelöscht (0):
Ergebnis: | 00000101b |
Verschieben¶
Bei der bitweisen Verschiebung werden die Bits eines Wertes nach links oder rechts verschoben. Die Bits am Rand fallen raus, die Stellen auf der anderen Seite werden mit Nullen aufgefüllt.
Linksverschiebung | << |
Rechtsverschiebung | >> |