Operátory jsou speciálním případem funkcí. Funkce má nějaké vstupní parametry (argumenty) a výstupní hodnotu.
Podle počtu argumentů dělíme operátory na:
a < 5 ? "je menší" : "je větší nebo rovno"
).
Pozn.:
Argumentům operátorů někdy říkáme též operandy.
Aritmetické operátory jsou nejběžnější, většina z nich jsou binární, mají tedy dva argumenty.
Operátor | Název | Příklad | Poznámka |
---|---|---|---|
+ | Sčítání | 5 + 3 | |
- | Odčítání | 10 - 6 | |
* | Násobení | 5.42 * 1.9 | |
/ | Dělení | 7 / 2 | Vydělíme-li celočíselně sedmičku dvěma, dostaneme tři, tj. 7 / 2 = 3 |
% | Zbytek po dělení | 7 % 2 | Zbytek po vydělení sedmičky dvěma je jedna, tj. 7 % 2 = 1 |
++ | Increment | i++ | Zvětší hodnotu uloženou v proměnné i o 1 |
-- | Decrement | j-- | Zmenší hodnotu v proměnné j o 1 |
Přiřazovací operátory v první řadě zařídí, že se do proměnné uloží nějaká hodnota.
Operátor | Název | Příklad | Poznámka |
---|---|---|---|
= | Přiřazení | a = 10 | Do proměnné a se uloží hodnota 10 |
+= | Přiřazení s přičtením | a += 3 | a = a + 3, tj. vezmu hodnotu proměnné a, přičtu k ní 3 a výsledek uložím zpět do proměnné a |
-= | Přiřazení s odečtením | x -= b | x = x - b |
*= | Přiřazení s násobením | a *= 2 | Hodnota v proměnné a se zdvojnásobí |
/= | Přiřazení s dělením | x /= (y - 0.1) | x = x / (y - 0.1) |
%= | Přiřazení po vypočtení zbytku | x %= 3 | x = x % 3 |
&= | Přiřazení s bitovou operací AND | num &= 0b00001100 | num = num & 0b00001100 |
|= | Přiřazení s bitovou operací OR | num |= 0b1010010101011010 | num = num | 0b1010010101011010 |
^= | Přiřazení s bitovou operací XOR | num ^= 0b11111111 | num = num ^ 0b11111111 |
>>= | Přiřazení s bitovým shiftem vpravo | num >>= 5 | num = num >> 5, tj. posune bity v proměnné num o 5 pozic doprava, zleva se doplňí znaménkový bit |
<<= | Přiřazení s bitovým shiftem vlevo | num << = 3 | num = num << 3, tj. posune bity v proměnné num o 3 pozice doleva, zprava se doplňují nuly |
Pro porovnání dvou hodnot, výsledkem je logická hodnota true, nebo false.
Operátor | Název | Příklad | Poznámka |
---|---|---|---|
== | Je rovno | x == y | Výsledek je true, je-li hodnota x rovna hodnotě y, a false, je-li hodnota x různá od hodnoty y |
!= | Není rovno | x != y | Výsledek je true, je-li hodnota x různá od hodnoty y, a false, jsou-li hodnoty stejné |
> | Větší než | x > y | Je-li x větší než y, výsledek je true, je-li x menší nebo rovno než y, výsledek je false |
< | Menší než | x < y | |
>= | Větší nebo rovno | x >= y | |
<= | Menší nebo rovno | x <= y |
Pro zkombinování dvou logických hodnot (dvou podmínek), případně pro negaci logické hodnoty (obrácení podmínky). Výsledkem je logická hodnota.
Operátor | Název | Příklad | Poznámka |
---|---|---|---|
&& | Logické "a" | condition1 && condition2 | Výsledkem logického výrazu (a > 3) && (b < 0) je true, pokud jsou splněny obě podmínky (a je větší než 3 a zároveň b je menší než 0), jinak false |
|| | Logické "nebo" | condition1 || condition2 | Výsledkem logického výrazu "Ahoj".Contains("ho") || y == 4 je true, pokud je splněna aspoň jedna z podmínek (řetězec "Ahoj" obsahuje podřetězec "ho", nebo hodnota proměnné y je rovna 4), případně obě dvě, jinak je výsledek false |
! | Logické "ne" (negace) | !condition | Výsledkem logického výrazu !((new List<int> { 4, 6, 8 }).IndexOf(6) >= 0) je true, pokud původní logický výraz (podmínka (new List<int> { 4, 6, 8 }).IndexOf(6) >= 0, tj. test, zda 6 je obsaženo v daném seznamu čísel) je nepravdivý, a naopak je false, pokud původní výraz je pravdivý |
Bitové operátory provádějí u celočíselných typů logické (booleovské) operace bit po bitu.
U binárních operací AND, OR a XOR (logický součin, součet a výhradní součet) tedy:
Operátor | Název | Příklad | Poznámka | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
~ | Bitový doplněk | ~(0b01001001) |
Výsledkem ~(0b01001001) je 0b10110110.
Jedná se o unární operátor, neguje (invertuje) jednotlivé bity v binární reprezentaci čísla. Pravdivostní tabulka:
|
|||||||||||||||
& | Bitová operace AND | 0b01001001 & 0b00011101 |
Výsledkem 0b01001001 & 0b00011101 je 0b00001001.
Binární operátor, logické "násobení":
|
|||||||||||||||
| | Bitová operace OR | 0b01001001 | 0b00011101 |
Výsledkem 0b01001001 | 0b00011101 je 0b01011101.
Binární operátor, logické "sčítání":
|
|||||||||||||||
^ | Bitová operace XOR | 0b01001001 ^ 0b00011101 |
Výsledkem 0b01001001 ^ 0b00011101 je 0b01010100.
Binární operátor, logický "výhradní součet":
Lze číst též takto: Buď platí jedno, nebo druhé. Ne obojí naráz. |
|||||||||||||||
<< | Bitový shift vlevo | 0b01001001 << 3 |
Výsledkem 0b01001001 << 3 je 0b01001000.
Binární operátor, posune bity prvního operandu směrem doleva o počet pozic daný druhým operandem, zprava "doplňuje" nuly. |
|||||||||||||||
>> | Bitový shift vpravo | 0b01001001 >> 2 0b10110110 >> 2 |
Výsledkem 0b01001001 >> 2 je 0b00010010,
avšak výsledkem 0b10110110 >> 2 je 0b11101101. Binární operátor, posune bity prvního operandu směrem doprava o počet pozic daný druhým operandem, zleva "doplňuje" 0 nebo 1 podle hodnoty původního nejvyššího (znaménkového) bitu. |
|||||||||||||||
>>> | Bitový shift vpravo bez znaménka | 0b01001001 >>> 2 0b10110110 >>> 2 |
Výsledkem 0b01001001 >>> 2 je 0b00010010,
a přitom výsledkem 0b10110110 >>> 2 je 0b00101101. Binární operátor, posune bity prvního operandu směrem doprava o počet pozic daný druhým operandem, zleva "doplňuje" 0. |