Jazyk C - operátory: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Riadok 6: Riadok 6:
 
==Aritmetické operátory==
 
==Aritmetické operátory==
  
'''Sčítanie +'''
+
===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 -'''
+
===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 *'''
+
===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 /'''
+
===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í %'''
+
===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 -'''
+
===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.

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

Zdroje