Referencia > Nyelv > Struktúrák > Bitenkénti operátorok > Bitenkénti nem

~

[Bitenkénti operátorok]

Leírás

A bitenkénti NEM operátor a C++-ban a ~ tilde karakter. A & és |-től eltérően a bitenkénti NEM operátor a tőle jobbra lévő egyetlen operandusra vonatkozik. A bitenkénti NEM minden bitet az ellenkezőjére változtat: a 0-ból 1 lesz, az 1-ből pedig 0.

Más szavakkal:

0  1    operandus1
-----
1  0   ~operandus1

Példa

int a = 103;  // binárisan:  0000000001100111
int b = ~a;   // binárisan:  1111111110011000 = -104

Megjegyzések és figyelmeztetések

Meglepődhet, ha a művelet eredményeként negatív számot lát, például -104. Ennek az az oka, hogy az int változó legmagasabb bitje az úgynevezett előjelbit. Ha a legmagasabb bit 1, akkor a szám negatívként értelmeződik. A pozitív és negatív számoknak ezt a kódolását kettes komplementernek nevezik. További információkért lásd a Wikipédia kettes komplementer című cikkét.

Félretéve, érdekes megjegyezni, hogy bármely x egész szám esetén ~x ugyanaz, mint -x - 1.

Időnként az előjeles egész kifejezésben lévő előjelbit nem kívánt meglepetéseket okozhat.

Lásd még

  • PÉLDA Bitmatek oktatóanyag