Diese Seite ist auch in 2 anderen Sprachen verfügbar.
Sprache wechseln  

&

[Bitwise Operators]

Beschreibung

Der bitweise AND-Operator in C ++ ist ein einzelnes kaufmännisches Und &, das zwischen zwei anderen Ganzzahlausdrücken verwendet wird. Das Bitweise AND bearbeitet die Bitpositionen der umgebenden Ausdrücke unabhängig voneinander gemäß dieser Regel: Wenn beide Eingangsbits 1 sind, ist das resultierende Ergebnis 1, andernfalls ist das Ergebnis 0.

Eine andere Möglichkeit, dies auszudrücken, ist:

0  0  1  1    operand1
0  1  0  1    operand2
----------
0  0  0  1    (operand1 & operand2) - Ergebnis

In Arduino ist der Typ int ein 16-Bit-Wert. Wenn & zwischen zwei int-Ausdrücken verwendet wird, werden 16 UND-Operationen gleichzeitig ausgeführt.

Beispielcode

In einem Codefragment wie:

int a =  92;   // Binär: 0000000001011100
int b = 101;   // Binär: 0000000001100101
int c = a & b; // Ergebnis: 0000000001000100, oder 68 dezimal.

Jedes der 16 Bits in a und b wird unter Verwendung des bitweisen AND verarbeitet, und alle 16 resultierenden Bits werden in c gespeichert. Dies führt zu einem binären Wert von 01000100, der als Dezimalzahl 68 ist.

Eine der häufigsten Anwendungen von bitweisem AND ist die Auswahl eines bestimmten Bits (oder einiger Bits) aus einem Integer-Wert, der oft als Maskierung bezeichnet wird.
Unten findest du ein Beispiel (spezifisch für die AVR-Architektur).

PORTD = PORTD & B00000011;  // Löschen der Bits 2 - 7 und Pins PD0 und PD1 (xx & 11 == xx) nicht ändern.

Siehe auch