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

&=

[Compound Operators]

Beschreibung

Der zusammengesetzte bitweise AND-Operator & = wird häufig mit einer Variablen und einer Konstanten verwendet, um bestimmte Bits in einer Variablen in den Zustand LOW (auf 0) zu bringen. Dies wird in Programmierhandbüchern oft als "Löschen" oder "Zurücksetzen" der Bits bezeichnet.

Ein Überblick über den bitweisen AND & Operator:

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

Syntax

x &= y; // Äquivalent zu x = x & y

Parameter

x: Variable. Erlaubte Datentypen: char, int, long.
y: Variable oder Konstante. Erlaubte Datentypen: char, int, long.

Beispielcode

Bits, die "bitweise verUNDet" mit 0 sind, werden auf 0 zurückgesetzt, wenn myByte eine Byte-Variable ist:

myByte & B00000000 = 0;

Bits die "bitweise verUNDet" mit 1 sind, werden nicht verändert:

myByte & B11111111 = myByte;

Anmerkungen und Warnungen

Da es sich um einen bitweisen Operator handelt, ist es sinnvoll, den binären Formatierer mit Konstanten zu verwenden. Die Zahlen haben in anderen Darstellungen immer noch den gleichen Wert, sie sind einfach nicht so leicht zu verstehen. Außerdem wird B00000000 zur Verdeutlichung gezeigt, aber Null in einem beliebigen Zahlenformat ist Null.

Um die Bits 0 & 1 einer Variablen zu löschen (auf Null zu setzen), während der Rest der Variablen unverändert bleibt, verwende den zusammengesetzten bitweisen AND-Operator (& =) mit der Konstanten B11111100

1  0  1  0  1  0  1  0    Variable
1  1  1  1  1  1  0  0    Maske
----------------------
1  0  1  0  1  0  0  0
Bits unverändert
                 Bits gelöscht

Hier ist die gleiche Darstellung, wobei die Bits der Variablen durch das Symbol x ersetzt werden

x  x  x  x  x  x  x  x    Variable
1  1  1  1  1  1  0  0    Maske
----------------------
x  x  x  x  x  x  0  0
Bits unverändert
                 Bits gelöscht

Also ergibt:

myByte =  B10101010;
myByte &= B11111100; // Ergibt B10101000

Siehe auch