| Arduino - Bit- und Byte-OperationenDie Arduino-Programmierung stellt uns ausreichend Funktionen zur Verfügung, um
Binäroperationen durchführen zu können. Eine dezimale Zahl in binärer Form darzustellen,
einzelne Bits auszulesen, zu setzen oder zurückzusetzen sowie diverse Bytes-Operationen durchzuführen
kann problemlos erfolgen. Hier eine Übersicht mit Beispielen. Bitweise ANDMit dem Operator AND (&) werden zwei Binärzahlen Bit für Bit verglichen. Sind die Bits auf jeweils gleicher Stelle identisch, wird das Ergebnis auf 1 gesetzt. Sonst erhält man als Ergebnis 0. // ---------------------------------------------------------- // Bitweise And-Operator
Der Operator & vergleicht Stelle für Stelle die Bits der beiden Zahlen.
Sind beide Bits gleich 1, ist auch das Ergebnis des Vergleiches 1. In allen anderen Fällen
liefert der Vergleich 0. In diesem Fall bekommen wir als Ergebnis: Bitweise ORBei dem OR-Vergleich (|) bekommen wir pro Bit-Stelle eine 1 dann, wenn mindestens einer der Bits den Wert 1 hat. Bitweise XORBei dem XOR-Vergleich (^) bekommen wir pro Bit-Stelle eine 1 dann, wenn die Bits einer Stelle verschieden sind. Bitweise NOTDer Operator NOT (~) kehrt die Bits auf allen Stellen um. Bei einer Zahl
B01001011 (75) ergibt sich als Ergebnis die Zahl B10110100 (180). Bitverschiebung nach links und rechtsDie Bitverschiebung erfolgt mit den Operatoren << (nach links)
und >> (nach rechts). bitReadMit bitRead lesen wir den Wert eines Bits an der angegebenen Position aus. bitWriteMit bitWrite schreiben wir an der angegebenen Position 0 oder 1. bitSetMit bitSet schreiben wir an der angegebenen Position einer Zahl 1. bitClearMit bitClear schreiben wir an der angegebenen Position einer Zahl 0. // ---------------------------------------------------------- // Bitoperationen
bitMit bit(n) wird der Wert des n-Bits ausgegebenen. lowByte & highByteMit lowByte(x) kann man das niederwertige Byte aus einem Integerwert x extrahieren, mit highByte(x) das höherwertige Byte. wordMit word(hiByte, loByte) kann man aus einzelnen Bytes einen Integerwert bilden. // ---------------------------------------------------------- // Bytes tauschen
Arduino_Programmierung
|