Jelenlegi hely

4.4. Bitléptető és bitenkénti logikai operátorok

A léptető operátorok bit műveleteket végeznek, a kifejezés első operandusának bitjeit jobbra, vagy balra léptetik. A következő táblázat a Java nyelvben használt léptető operátorokat mutatja be:

  • op1 << op2 op1 bitjeit op2 értékével balra lépteti; jobbról nullákkal tölti fel
  • op1 >> op2 op1 bitjeit op2 értékével jobbra lépteti; balról a legnagyobb helyértékű bitet tölt fel
  • op1 >>> op2 op1 bitjeit op2 értékével jobbra lépteti; balról nullákkal tölt fel.

Mindegyik operátor az első operandus bitjeit lépteti az operátor által megadott irányba a második operandus értékével. Például a következő kifejezésben a 13-as egész szám bitjeit léptetjük 1-el jobbra:

13 >> 1;

A 13-as szám kettes számrendszerbeli értéke: 1101. A léptetés eredménye: 1101 egy pozícióval jobbra - 110, (decimálisan 6). A bal oldali biteket 0-val töltöttük fel.

A következő táblázatban a Java programozási nyelvben használatos bitenkénti logikai operátorokat és funkciójukat láthatjuk:

  • op1 & op2 Bitenkénti és, ha mindkét operandus szám; feltételes és ha mindkét operandus logikai
  • op1 | op2 Bitenkénti vagy, ha mindkét operandus szám; feltételes vagy, ha mindkét operandus logikai
  • op1 ^ op2 Bitenkénti kizáró vagy (xor)
  • ~op2 Bitenkénti negáció

És

Ha az operandus szám, az & operátor bitenkénti és műveletet hajt végre páronként (helyérték szerint) az operandus bitjein. Az és művelet akkor ad vissza 1-et, ha a kifejezés mindkét bitje 1.

Ha az és műveletet két decimális számon hajtjuk végre, például a 12-n és 13-n (12&13) akkor az adott számok kettes számrendszerbeli alakján bitenként kell végrehajtanunk az és műveletet. Az eredmény így 12 lesz decimálisan.

Ha mindkét operandus 1, az és művelet eredményként is 1-et ad. Ellenkező esetben 0-t.

Vagy

Ha mindkét operandus szám, akkor a | operátor a vagy műveletet hajtja végre. A vagy művelet 1-et ad eredményül, ha két bit közül bármelyik értéke 1.

Kizáró vagy

Ha mindkét operandus szám, akkor a ^ operátor a kizáró vagy (xor) műveletet hajtja végre. Kizáró vagy esetén a kifejezés eredménye akkor egy, ha a két operandus bit különböző, ellenkező esetben az eredmény 0.

Negáció

Végül a negációs operátor (~) az operandus bitjeit egyenként az ellenkezőjére fordítja: ha az operandus bitje 1, akkor az eredmény 0, ha az operandus bitje 0, akkor az eredmény 1. Például: ~1011 (11) = 0100 (4).