Jazyk C - operátory: Rozdiel medzi revíziami
Riadok 6: | Riadok 6: | ||
==Aritmetické operátory== | ==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. | 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. | ||
<source lang="c">x = A + B;</source> | <source lang="c">x = A + B;</source> | ||
− | + | ===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. | 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. | ||
<source lang="c">x = A - B;</source> | <source lang="c">x = A - B;</source> | ||
− | + | ===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. | 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. | ||
<source lang="c">x = A * B;</source> | <source lang="c">x = A * B;</source> | ||
− | + | ===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. | 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. | ||
<source lang="c">x = A / B;</source> | <source lang="c">x = A / B;</source> | ||
− | + | ===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'''. | 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'''. | ||
<source lang="c">x = A * B;</source> | <source lang="c">x = A * B;</source> | ||
− | + | ===Zmena znamienka -=== | |
Tento operátor slúži na zmenu znamienka daného čísla. Jeho návratová hodnota je dané číslo krát -1. | Tento operátor slúži na zmenu znamienka daného čísla. Jeho návratová hodnota je dané číslo krát -1. | ||
Riadok 39: | Riadok 39: | ||
</source> | </source> | ||
+ | ===Inkrementácia ++=== | ||
+ | |||
+ | Tento operátor slúži na zväčšenie daného čísla o 1. | ||
+ | <source lang="c"> | ||
+ | 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 | ||
+ | </source> | ||
+ | |||
+ | ===Dekrementácia ++=== | ||
+ | |||
+ | Tento operátor slúži na zmenšenie daného čísla o 1. | ||
+ | <source lang="c"> | ||
+ | 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 | ||
+ | </source> | ||
+ | |||
+ | |||
+ | ==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'''. | ||
+ | <source lang="c">x = A && B;</source> | ||
+ | |||
+ | ===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'''. | ||
+ | <source lang="c">x = A || B;</source> | ||
+ | |||
+ | ===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'''. | ||
+ | <source lang="c">x = !A;</source> | ||
+ | |||
+ | '''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'''). | ||
+ | <source lang="c"> | ||
+ | //A = B00110101 | ||
+ | x = A << 2; | ||
+ | //A = B11010100 | ||
+ | </source> | ||
+ | |||
+ | '''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''')). | ||
+ | <source lang="c"> | ||
+ | //A = B00110101 | ||
+ | x = A >> 2; | ||
+ | //A = B00001101 | ||
+ | </source> | ||
+ | |||
+ | ===Bitový súčin &=== | ||
+ | |||
+ | Tento operátor vypočíta logický súčin každého jedného bitu v čísle. Napr.:<source lang="c"> | ||
+ | 00110101 | ||
+ | &10100110 | ||
+ | --------- | ||
+ | 00100100 | ||
+ | </source> Využíva sa najmä ak chceme zmeniť alebo získať určitý bit v čísle. | ||
+ | <source lang="c"> | ||
+ | x = A & B; | ||
+ | </source> | ||
+ | |||
+ | ===Bitový súčet |=== | ||
+ | |||
+ | Tento operátor vypočíta logický súčet každého jedného bitu v čísle. Napr.:<source lang="c"> | ||
+ | 00110101 | ||
+ | |10100110 | ||
+ | --------- | ||
+ | 10110111 | ||
+ | </source> Využíva sa najmä ak chceme zmeniť alebo získať určitý bit v čísle. | ||
+ | <source lang="c"> | ||
+ | x = A | B; | ||
+ | </source> | ||
+ | |||
+ | ===Bitový exkluzívny súčet ^=== | ||
+ | |||
+ | Tento operátor vypočíta exkluzívny súčet každého jedného bitu v čísle. Napr.:<source lang="c"> | ||
+ | 00110101 | ||
+ | ^10100110 | ||
+ | --------- | ||
+ | 10010011 | ||
+ | </source> Využíva sa najmä pri šifrovaní. | ||
+ | <source lang="c"> | ||
+ | x = A ^ B; | ||
+ | </source> | ||
+ | |||
+ | ===Bitová negácia ~=== | ||
+ | |||
+ | Tento operátor vypočíta logická negáciu každého jedného bitu v čísle. Napr.:<source lang="c"> | ||
+ | 00110101 | ||
+ | ~ | ||
+ | --------- | ||
+ | 11001010 | ||
+ | </source> | ||
+ | <source lang="c"> | ||
+ | x = ~A; | ||
+ | </source> | ||
+ | |||
+ | |||
+ | ==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'''. | ||
+ | <source lang="c">A < B;</source> | ||
+ | |||
+ | ===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'''. | ||
+ | <source lang="c">A > B;</source> | ||
+ | |||
+ | ===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'''. | ||
+ | <source lang="c">A <= B;</source> | ||
+ | |||
+ | ===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'''. | ||
+ | <source lang="c">A >= B;</source> | ||
+ | |||
+ | ===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'''. | ||
+ | <source lang="c">A == B;</source> | ||
+ | |||
+ | ===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'''. | ||
+ | <source lang="c">A != B;</source> | ||
+ | |||
+ | |||
+ | ==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.<ref>http://ctp.mkprog.eu/sk/c/priradenie/</ref> Priradenie, rovnako ako ostatné operátory, má taktiež návratovú hodnotu a ňou je hodnota, ktorá bola priradená. | ||
+ | <source lang="c">A = B + 1</source> | ||
+ | |||
+ | '''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: | ||
+ | <source lang="c"> | ||
+ | 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 | ||
+ | </source> | ||
==Zdroje== | ==Zdroje== |
Verzia zo dňa a času 01:03, 26. február 2020
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