&=

[Összevont operátorok]

Leírás

Az összevont bitenkénti ÉS operátort &= gyakran használják változóval és konstanssal, hogy egy változó bizonyos bitjeit LOW állapotba (0-ra) kényszerítsék. A programozási útmutatókban ezt gyakran bitek törlésének vagy visszaállításának nevezik.

A bitenkénti ÉS & operátor áttekintése:

0  0  1  1    operandus1
0  1  0  1    operandus2
----------
0  0  0  1    (operandus1 & operandus2) - a visszaadott érték

Szintaxis

x &= y; // egyenértékű x = x & y;-nal

Paraméterek

x: változó. Engedélyezett adattípusok: char, int, long.
y: változó vagy állandó. Engedélyezett adattípusok: char, int, long.

Példa

Azokat a biteket, amelyeket a "bitenkénti ÉS"-ben 0-ra állítottunk, a rendszer 0-ra törli, ha a myByte egy bájt típusú változó,

myByte & 0b00000000 = 0;

Azok a bitek, amelyek a "bitenkénti ÉS"-ben 1-re vannak állítva, változatlanok maradnak,

myByte & 0b11111111 = myByte;

Megjegyzések és figyelmeztetések

Mivel bitenkénti operátorral van dolgunk, ezért kényelmes a bináris formázó használata konstansoknál. A számok más ábrázolásokban továbbra is ugyanazt az értéket képviselik, csak nem olyan könnyű megérteni őket. A 0b00000000 is megjelenik az érthetőség kedvéért, de a nulla bármilyen számformátumban nulla (hmmm valami filozófia?)

Következésképpen - egy változó 0. és 1. bitjének törléséhez (nullára állításához), miközben a változó többi részét változatlanul hagyja, használja az összetett bitenkénti ÉS operátort (&=) a 0b11111100 konstanssal.

1  0  1  0  1  0  1  0    változó
1  1  1  1  1  1  0  0    maszk
----------------------
1  0  1  0  1  0  0  0
változatlan bitek
                 törölt bitek

Itt ugyanaz az ábrázolás látható, ahol a változó bitjeit az x szimbólum helyettesíti

x  x  x  x  x  x  x  x    változó
1  1  1  1  1  1  0  0    maszk
----------------------
x  x  x  x  x  x  0  0
változatlan bitek
                 törölt bitek

Tehát, ha:

myByte = 0b10101010;
myByte &= 0b11111100;  // eredmény: 0b10101000

Lásd még