Reference   Language | Libraries | Comparison | Changes

verkürztes bitweises OR (|=)

Beschreibung

Der verkürzte bitweise OR (ODER) Operator (|=) wird häufig mit einer Variablen und Konstanten verwendet, um bestimmte Bits innerhalb einer Variablen gezielt in den HIGH-Zustand (nach 1) zu setzen.

Syntax:

x |= y;   // gleichbedeutend mit x = x | y; 

Parameter

x: eine Variable vom Typ char, int oder long
y: eine Konstante vom Typ integer, char oder long

Beispiel:

Zuerst ein Rückblick auf den bitweise OR (|) Operator

   0  0  1  1    Operand1
   0  1  0  1    Operand2
   ----------
   0  1  1  1    (Operand1 | Operand2) - zurückgegebenes Ergebnis

Bits, die mit einer 0 bitweise OR-verknüpft sind, bleiben unverändert, wenn myByte eine Byte-Variable ist.
myByte | B00000000 = myByte;

Bits, die mit einer 1 bitweise OR-verknüpft werden, werden auf 1 gesetzt, also:
myByte | B11111111 = B11111111;

Konsequenterweise - um die Bits 0 & 1 einer Varablen auf '1' zu setzen, während der Rest der Varaiblen unverändert bleibt, benutzt man den verkürzten bitweisen OR Operator (|=) mit der Konstanten B00000011.

   1  0  1  0  1  0  1  0    Variable
   0  0  0  0  0  0  1  1    Maske
   ----------------------
   1  0  1  0  1  0  1  1

Variable unverändert
                     Bits gesetzt


Hier das gleiche Beispiel, bei dem die Bits der Variablen als x dargestellt werden.

   x  x  x  x  x  x  x  x    Variable
   0  0  0  0  0  0  1  1    Maske
   ----------------------
   x  x  x  x  x  x  1  1

Variable unverändert
                     Bits gesetzt

Ebenso:

myByte =  B10101010;

myByte |= B00000011 == B10101011;

Siehe auch

  • &= (verkürztes bitweises AND)
  • & (bitweises AND)
  • | (bitweises OR)

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

Share