12.07.2015 Views

Programski jezik C - Pmf

Programski jezik C - Pmf

Programski jezik C - Pmf

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.1.ARITMETIČKI OPERATORI 67• Operacija modulo (%) djeluje na cjelobrojnim operandima i kao rezultatdaje ostatak pri cjelobrojnom dijeljenju operanada. Na primjer,ako je x = 10 i y = 3, onda je x/y = 3 (cjelobrojno dijeljenje) tex%y = 1. Uvijek mora vrijediti da je (x/y) ∗ y + (x%y) jednako x, takoda ponašanje operatora % na negativnim operandima ovisi o ponašanjuoperatora /.• Operator potenciranja u C-u ne postoji. Umjesto njega koristi se funkcijapow iz matematičke biblioteke.Primjer. Uzmimo da je na primjer x = 13 i y = −3. Tada je prema standarduC99 x/y = −4 (odsjecanje) te x%y = 1 (predznak prvog operanda).Stoga je (x/y) ∗ y + (x%y) = 13 = x.4.1.1 KonverzijeKada u aritmetičkom izrazu sudjeluju operandi različitih tipova ondaprije izračunavanja izraza dolazi konverzije operanada u zajednički tip premaodredenim pravilima. Općenito operandi će biti konvertirani u najpreciznijitip prisutan medu operandima i rezultat aritmetičkog izraza bit će tog tipa.Na primjer, ako je x varijabla tipa double, a n varijabla tipa int u izrazux+n, prije zbrajanja doći će do konverzije varijable n u tip double i vrijednostizraza bit će tipa double.Vrijede sljedeća pravila:• short i char (s predznakom ili bez) automatski se konvertiraju u intprije svake aritmetičke operacije. U slučaju da je short isto što i int,onda će unsigned short biti širi od int, pa će operandi biti konvertiraniu unsigned int.• U svakoj operaciji koja uključuje operanda različitih tipova prije izvršenjaoperacije vrši se konverzija operanada u najširi tip.• Tipovi su prema širini poredani na sljedeći način (od najšireg premanajužem): long double, double, float, unsigned long long, longlong, unsigned long, long, unsigned int i int. Jedina iznimka jekad su long i int isti. Tada je unsigned int širi od long. Uži tipovise ne pojavljuju jer se oni automatski konvertiraju u int ili unsignedint prema prvom pravili.Prilikom ovih konverzija ne dolazi do gubitka informacije osim eventualnou slučaju kada se cjelobrojni tip konvertira u realni.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!