Referencia > Nyelv > Struktúrák > Összevont operátorok > Összevont bitenkénti kizáró vagy

^=

[Összevont operátorok]

Leírás

Az összevont bitenkénti XOR operátort ^= gyakran használják egy változóval és egy állandóval a változó bizonyos bitjeinek átváltására (invertálására).

A bitenkénti XOR ^ operátor áttekintése:

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

Szintaxis

x ^= y; // egyenértékű az x = x ^ y; kifejezéssel

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

Azok a bitek, amelyek a "bitenkénti XOR"-ban 0-ra állítottunk, változatlanok maradnak. Így, ha a myByte egy byte típusú változó,

myByte ^ 0b00000000 = myByte;

A bitek amelyek "bitenkénti XOR"-ban 1-re állítottunk, átváltanak

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 állandókkal. 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.

Következésképpen - a változó 0 és 1 bitjei átváltáshoz, miközben a változó többi részét változatlanul hagyja, használja az összetett bitenkénti XOR operátort (^=) a 0b00000011 konstanssal.

1  0  1  0  1  0  1  0    változó
0  0  0  0  0  0  1  1    maszk
----------------------
1  0  1  0  1  0  0  1
változatlan bitek
                 átállított bitek

Itt ugyanaz az ábrázolás, a változók bitjeit x szimbólummal helyettesítjük. ~x jelenti x ellentettjét.

x  x  x  x  x  x  x  x    változó
0  0  0  0  0  0  1  1    maszk
----------------------
x  x  x  x  x  x ~x ~x
változatlan bitek
                 átállított bitek

Így, ha:

myByte = 0b10101010;
myByte ^= 0b00000011 == 0b10101001;

Lásd még

  • NYELV ^ Bitenkénti KIZÁRÓ VAGY