Jazyk C - operátory
Operátor je symbol, ktorý hovorí kompilátoru, aby vykonával konkrétne matematické alebo logické funkcie. [1] Jeho návratový typ určený podľa typu vstupných hodnôt.
Učebné texty
Aritmetické operátory
Sčítanie +
Tento operátor slúži na sčítanie dvoch celých alebo reálnych čísiel. Jeho návratová hodnota je súčet daných čísiel.
x = A + B;
Rozdiel -
Tento operátor slúži na odčítanie dvoch celých alebo reálnych čísiel. Jeho návratová hodnota je rozdiel ľavého a pravého čísla.
x = A - B;
Súčin *
Tento operátor slúži na násobenie dvoch celých alebo reálnych čísiel. Jeho návratová hodnota je súčin daných čísiel.
x = A * B;
Podiel /
Tento operátor slúži na delenie dvoch celých alebo reálnych čísiel. Jeho návratová hodnota je podiel ľavého a pravého čísla.
x = A / B;
Zvyšok po delení %
Tento operátor slúži na vypočítanie celočíselného zvyšku po delení celých čísiel. Jeho návratová hodnota sa nazýva modulo.
x = A * B;
Zmena znamienka -
Tento operátor slúži na zmenu znamienka daného čísla. Jeho návratová hodnota je dané číslo krát -1.
x = -A;
y = A * (-1); //ekvivalent
Inkrementácia ++
Tento operátor slúži na zväčšenie daného čísla o 1.
A++; //hodnota A sa zväčší o 1
++A; //Hodnota A sa tiež zväčší o 1
vypis(A++); //zväčší hodnotu i o 1, ale vráti originálnu hodnotu, ktorú potom vypíše
vypis(++A); //najprv zväčší hodnotu i o 1, potom toto číslo vypíše
Dekrementácia ++
Tento operátor slúži na zmenšenie daného čísla o 1.
A--; //hodnota A sa zmenší o 1
--A; //Hodnota A sa tiež zmenší o 1
vypis(A--); //zmenší hodnotu i o 1, ale vráti originálnu hodnotu, ktorú potom vypíše
vypis(--A); //najprv zmenší hodnotu i o 1, potom toto číslo vypíše
Logické operátory
Logický súčin &&
Tento operátor slúži na vypočítanie logického súčinu dvoch čísiel. Jeho návratová hodnota môže byť len TRUE alebo FALSE.
x = A && B;
Logický súčet ||
Tento operátor slúži na vypočítanie logického súčtu dvoch čísiel. Jeho návratová hodnota môže byť len TRUE alebo FALSE.
x = A || B;
Negácia !
Tento operátor slúži na vypočítanie negácie jedného čísla. Jeho návratová hodnota môže byť len TRUE alebo FALSE.
x = !A;
Poznámka: Vstupné hodnoty logických operátorov môžu byť len TRUE (1) alebo FALSE (0), avšak v jazyku C/C++ sú všetky hodnoty okrem 0 považované za TRUE.
Bitové operátory
Bitový posun vľavo <<
Tento operátor slúži na posunutie bitov jedného čísla vľavo o zadaný počet (chýbajúce bity sa nahradia 0). Rovnaký výsledok sa dá dosiahnuť aj násobením daného čísla násobkami 2 (napr. A << 3 = A * 2 * 3).
//A = B00110101
x = A << 2;
//A = B11010100
Poznámka: V jazyku C/C++ poznáme viac foriem zápisu čísiel, buď napíšeme číslo v dekadickej sústave napr. 125, alebo v binárnej sústave napr. B01111101, alebo v hexadecimálnej sústave napr. 0x7D.
Bitový posun vpravo >>
Tento operátor slúži na posunutie bitov jedného čísla vpravo o zadaný počet (chýbajúce bity sa nahradia 0). Rovnaký výsledok sa dá dosiahnuť aj delením daného čísla násobkami 2 (napr. A >> 3 = A /( 2 * 3)).
//A = B00110101
x = A >> 2;
//A = B00001101
Bitový súčin &
Tento operátor vypočíta logický súčin každého jedného bitu v čísle. Napr.:
00110101
&10100110
---------
00100100
Využíva sa najmä ak chceme zmeniť alebo získať určitý bit v čísle.
x = A & B;
Bitový súčet |
Tento operátor vypočíta logický súčet každého jedného bitu v čísle. Napr.:
00110101
|10100110
---------
10110111
Využíva sa najmä ak chceme zmeniť alebo získať určitý bit v čísle.
x = A | B;
Bitový exkluzívny súčet ^
Tento operátor vypočíta exkluzívny súčet každého jedného bitu v čísle. Napr.:
00110101
^10100110
---------
10010011
Využíva sa najmä pri šifrovaní.
x = A ^ B;
Bitová negácia ~
Tento operátor vypočíta logická negáciu každého jedného bitu v čísle. Napr.:
00110101
~
---------
11001010
x = ~A;
Relačné operátory
Menšie ako <
Tento operátor porovnáva dve zadané čísla. Jeho návratová hodnota môže byť len TRUE alebo FALSE. Ak je ľavé číslo menšie ako pravé, tak vráti TRUE, inak FALSE.
A < B;
Väčšie ako >
Tento operátor porovnáva dve zadané čísla. Jeho návratová hodnota môže byť len TRUE alebo FALSE. Ak je ľavé číslo väčšie ako pravé, tak vráti TRUE, inak FALSE.
A > B;
Menšie alebo rovné ako <=
Tento operátor porovnáva dve zadané čísla. Jeho návratová hodnota môže byť len TRUE alebo FALSE. Ak je ľavé číslo menšie alebo rovné ako pravé, tak vráti TRUE, inak FALSE.
A <= B;
Väčšie alebo rovné ako >=
Tento operátor porovnáva dve zadané čísla. Jeho návratová hodnota môže byť len TRUE alebo FALSE. Ak je ľavé číslo väčšie alebo rovné ako pravé, tak vráti TRUE, inak FALSE.
A >= B;
Rovná sa ==
Tento operátor porovnáva dve zadané čísla. Jeho návratová hodnota môže byť len TRUE alebo FALSE. Ak je ľavé číslo rovnaké ako pravé, tak vráti TRUE, inak FALSE.
A == B;
Nerovná sa !=
Tento operátor porovnáva dve zadané čísla. Jeho návratová hodnota môže byť len TRUE alebo FALSE. Ak je ľavé číslo iné ako pravé, tak vráti TRUE, inak FALSE.
A != B;
Priraďovací operátor
Priradenie =
Operátor priradenia slúži na priradenie hodnoty do premennej. Môže byť použitý na akýkoľvek datový typ s jedinou podmienkou, že prvý parameter (ľava strana), musí byť prijímač hodnoty, napríklad premenná. v závislosti na programovací jazyk môžu byť rozdielne podmienky pre priradenie hodnoty do premenných, napríklad na základe závislosti na type.[2] Priradenie, rovnako ako ostatné operátory, má taktiež návratovú hodnotu a ňou je hodnota, ktorá bola priradená.
A = B + 1
Poznámka: V jazyku C/C++ sa pri používaní operátorov postupuje podľa priority operátorov, inak sa postupuje zľava doprava, napr.: A = A + 5 * 6 * B bude vypočítané ako x = 6 * B; y = 5 * x; A = A + y.
Operátor a následné priradenie
Pre zjednodušenie programovania sa takmer všetky aritmetické a bitové operátory dajú nahradiť operátormi spojenými s priradením:
A = A + 2 ..... A += 2
A = A - 2 ..... A -= 2
A = A * 2 ..... A *= 2
A = A / 2 ..... A /= 2
A = A % 2 ..... A %= 2
A = A << 2 .... A <<= 2
A = A >> 2 .... A >>= 2
A = A & 2 ..... A &= 2
A = A | 2 ..... A |= 2
A = A ^ 2 ..... A ^= 2