TIPOVI
PODATAKA I OPERATORI U C#
Tip |
Opseg vrednosti |
Zauzeće memorije u bajtovima |
sbyte |
-128
do 127 |
1 |
byte |
0
do 255 |
1 |
short |
-32768
do 32767 |
2 |
ushort |
0
do 65535 |
2 |
int |
-2
147 483 648 do 2 147 483 647 |
4 |
uint |
0
do 4 294 967 295 |
4 |
long |
-9
223 372 036 854 775 808 do 9 223 372 036 854 775 807 |
8 |
ulong |
0
do 18 446 744 073 709 551 615 |
8 |
Tip |
Opseg vrednosti |
float |
±1.5×10-45 d-do
±3.4×1038 |
double |
±5.0×10-324 do ±1.7×10308 |
decimal |
±1.0×10-28 do ±7.9×1028 |
Aritmetički operatori su:
+
(sabiranje)
-
(oduzimanje)
*
(množenje)
/
(deljenje)
% (ostatak
celobrojnog deljenja - moduo)
Logički operatori su:
! -
negacija
|| -
logičko “ili” (OR)
&&
- logičko „I“ (AND)
Relacijski operatori su:
== - ekvivalencija tj jednakost
!= - neekvivalencija
tj različito
< - manje
> - veće
<= - manje ili jednako
>= - veće ili jednako
Operatori
za rad sa bitovima su:
~ –
negacija na nivou bita
& - I
na nivou bita
| - Ili na
nivou bita
^ -
ekskluzivno ili na nivou bita
<< -
pomeranje u levo
>> -
pomeranje u desno
promenljiva = izraz
operator=
a+=b
a=a+b
Operatori
inkrementiranja u oznaci ++ i
dekrementiranja u oznaci -- mogu
biti prefiksni i postfiksni. Operator inkrementiranja povećava vrednost operanda za jedan
a operator dekremeniranja smanuje vrednost operanda za jedan
i to bez obzira da li su prefiksni ili
postfiksni. Razlika se uočava jedino
kada su ovi
operatori deo nekog složenijeg izraza. U tom slučaju
se operatori inkrementiranja
i dekrementrianja ako su u prefiksnom obliku izvršavaju pre računanja vrednosti izraza za razliku
od slučaja
kada se javljaju u postfiksnm obliku kada se izvršavaju tek nakon izračunatog
izraza. Jednostavno rečeno ako se u nekom izrazu operatori
inkrementiranja i dekrementiranja
javljaju u prefiksnom obliku vrednost izraza se izračunava sa novim
vrednostima operanada nad kojim se primenjuju
ovi operatori odnosno u slučaju postfiksnih operatora izraz se računa sa starim vrednostima
operanada. I u jednom
i u drugom slučaju se što se tiče samih operanada njihova vrednost poveća za jedan (za inkrement)
odnosno smanji za jedna (za
dekrement). Ilustrujmo to sledećim
primerom koji predstavlja deo nekog koda.
Primer
int i = 5;
int y = 10;
int x = 0;
i++; // vrednost i se povećava za jedan tj
i ima vrednost 6;
++i;
// vrednost i se povećava
za jedan tj i ima vrednost
7;
i--; // vrednost i se smanjuje za jedan tj
i ima vrednost 6;
--i;
// vrednost i se smanjuje za jedan tj
i ima vrednost 5;
x =
y + ++i; // x=16 jer se vrednost i poveća za jedan pa se sabere sa y
x =
y + i++; // x=15 jer se vrednost i sabere sa
y i dodeli x a zatim se i poveća za jedan
x =
y + --i; // x=14 jer se vrednost
i smanji za jedan pa se sabere sa y
x =
y + i--; // x=15 jer
se vrednost i sabere sa y i dodeli x a zatim se i smanji za jedan
Svi operatori imaju svoj prioritet. Kompajler izvršava neki izraz u kome
postoji više operatora u redosledu koji se odredjuje na osnovu
prioriteta operatora i mesta njihovog pojavljivanja u izrazu. Prioritet operatora prema kategorijama je sledeći (od najvišeg ka najnižem):
·
osnovni operatori (pristup polju, poziv metode,
pristup indeksu, postinkrementiranje, postekrementiranje,
new, typeof, sizeof, )
·
unarni operatori (i predekrementiranje i
preinkrementiranje)
·
aritmetički (množenje, deljenje, ostatak pri deljenju)
·
sabiranje i oduzimanje
·
pomeranje na nivou bita
(pomeranje u levo i pomeranje u desno)
·
relacioni operatori
·
jednakost (jednako i različito)
·
I na nivou bita
·
ekskluzivno ILI
na nivou bita
·
ILI na nivou bita
·
logičko I
·
logičko ILI
·
ternarni
operator
·
operatori dodeljivanja
http://vojo.milanovic.org
© Copyright, 2012 Milanović Vojo
All right reserved