*      TIPOVI PODATAKA I OPERATORI U C#

 

         C# podržava sledeće osnovne tipove podataka:

 

·         numeričke

·         znakovne

·         logičke

 

Numerički tipovi se koristi za predstavljane celih i realnih brojeva. Za opisivanje celih brojeva koristi se više tipova datih u tabeli.

 

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

 

Za realne brojeve podržani su sledeći tipovi:

 

·         float

·         double

·         decimal

 

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

 

Znakovni tip je char i predstavlja dozvoljene vrednosti sa UNICODE znakom odnosno celim brojem u intervalu 0 do 65536 što zauzima dva bajta. Konstante tipa char se pišu unutar navodnika npr. a’,’C’… Logički tip je bool I može da ima samo dve vrednosti: true(tačno) i false(netačno) I zauzima jedan bajt.

 

Zavisno od tipa podataka određen je i skup operatora koji se mogu koristiti nad podacima toga tipa. Operatori se dele na različite načine. Često se koristi podela prema broju operanada koje koriste, pa po ovoj podeli se dele na:

 

·         unarne

·         binarne

·         ternarne

 

Unarni su oni koji koriste samo jedan operand a takav je npr. operator negacije. Binarni su svakako i najčešći i oni koriste dva operanda i najčešće se primenjuju u aritmetičkim operacijama. Kada je reč o ternarnim operatorima C# koristi samo jedan, a to je operator „?:“. Druga podela je prema vrsti operacija koja se koristi pa oni mogu biti:

 

·         aritmetički

·         logički

·         reaacijski

·         operatori za rada sa tekstulanim podacima – stringovima.

 

Sintaksno ispravna kombinacija operatora i operanada naziva se izraz. Svaki izraz mora da pripada odgovarajućem standardnom tipu podataka. Na osnovu prethodme podele postoje sledeći opeatori:

 

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

 

Pored prethodno definisanih operatore postoje i drugi kao što su operatori dodele, operatori za inkrementiranje i dekrementiranje, ternarni i sl. Osnovni operator dodele je znak jednakosti (=) i koristi se na sledeći način;

promenljiva = izraz

 

Prvo se izračunava vrednost izraza i tako dobijena vrednost dodeli promenljivoj na levoj strani.  Postoje takođe i složeni operatori dodele koji imaju oblik:

 

operator=

 

gde operator može biti bilo koji aritmetički operator. Primer:

 

a+=b  

 

je isto ako da smo napisali:

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