114
Tipovi Tipovi podataka podataka *

Tipovi podataka

  • Upload
    paley

  • View
    93

  • Download
    2

Embed Size (px)

DESCRIPTION

Tipovi podataka. *. Elementarni tipovi podataka. *. char (1). byte. Obuhvaća brojeve od - 12 8 do 12 7. *. short int (2). byte. byte. Obuhvaća brojeve od -32768 do 32767. *. int/long int (4). byte. byte. byte. byte. Obuhvaća brojeve od -2147483648 do 2147483647. *. - PowerPoint PPT Presentation

Citation preview

Page 1: Tipovi podataka

Tipovi Tipovi podatakapodataka

*

Page 2: Tipovi podataka

Elementarni Elementarni tipovi podatakatipovi podataka

*

Page 3: Tipovi podataka

char (1)char (1)

bytebyte

*

Obuhvaća brojeve odObuhvaća brojeve od

--12128 8 dodo 121277Obuhvaća brojeve odObuhvaća brojeve od

--12128 8 dodo 121277

Page 4: Tipovi podataka

short int (2)short int (2)

bytebyte

Obuhvaća brojeve odObuhvaća brojeve od

-32768 -32768 dodo 32767 32767Obuhvaća brojeve odObuhvaća brojeve od

-32768 -32768 dodo 32767 32767

bytebyte

*

Page 5: Tipovi podataka

int/long int (4)int/long int (4)

Obuhvaća brojeve odObuhvaća brojeve od

-2147483648 -2147483648 dodo 2147483647 2147483647Obuhvaća brojeve odObuhvaća brojeve od

-2147483648 -2147483648 dodo 2147483647 2147483647

bytebyte bytebytebytebyte bytebyte

*

Page 6: Tipovi podataka

float (4)float (4)

Obuhvaća brojeve odObuhvaća brojeve od -3.4*10-3.4*103838 do do -3.4*10 -3.4*10-38-38

ii3.4*103.4*10-38-38 dodo 3.4*10 3.4*103838..

Zajamčena točnost: Zajamčena točnost: 7 decimala7 decimala

Obuhvaća brojeve odObuhvaća brojeve od -3.4*10-3.4*103838 do do -3.4*10 -3.4*10-38-38

ii3.4*103.4*10-38-38 dodo 3.4*10 3.4*103838..

Zajamčena točnost: Zajamčena točnost: 7 decimala7 decimala

bytebyte bytebytebytebyte bytebyte

*

Page 7: Tipovi podataka

double (8)double (8)

Obuhvaća brojeve odObuhvaća brojeve od -1.7 *10-1.7 *10308308 do do -1.7 *10-1.7 *10-308-308

ii

1.7 *101.7 *10-308-308 do do 1.7 *101.7 *10308308

Zajamčena točnost: Zajamčena točnost: 15 decimala15 decimala

Obuhvaća brojeve odObuhvaća brojeve od -1.7 *10-1.7 *10308308 do do -1.7 *10-1.7 *10-308-308

ii

1.7 *101.7 *10-308-308 do do 1.7 *101.7 *10308308

Zajamčena točnost: Zajamčena točnost: 15 decimala15 decimala

bytebyte bytebytebytebyte bytebyte

bytebyte bytebyte bytebyte bytebyte

*

Page 8: Tipovi podataka

long double (1long double (122))

Obuhvaća brojeve odObuhvaća brojeve od -1.1*10-1.1*1049324932 do do -3.4*10-3.4*10-4932-4932

ii3.4*103.4*10-4932-4932 do do 1.1*101.1*1049324932

Zajamčena točnost: Zajamčena točnost: 18 decimala18 decimala

Obuhvaća brojeve odObuhvaća brojeve od -1.1*10-1.1*1049324932 do do -3.4*10-3.4*10-4932-4932

ii3.4*103.4*10-4932-4932 do do 1.1*101.1*1049324932

Zajamčena točnost: Zajamčena točnost: 18 decimala18 decimala

bytebyte bytebyte bytebyte bytebyte

bytebytebytebyte bytebyte bytebyte

*

bytebytebytebyte bytebyte bytebyte

Page 9: Tipovi podataka

Veličina pojedinih tipovaVeličina pojedinih tipova(sizeof)(sizeof)

cout << “Veličina cijelih brojeva: “ << cout << “Veličina cijelih brojeva: “ << sizeofsizeof (int); (int); cout <<“Veličina realnih brojeva: “<< cout <<“Veličina realnih brojeva: “<< sizeof sizeof (float);(float); float a = 2.51;float a = 2.51;

cout << Veličina a: ”<< cout << Veličina a: ”<< sizeofsizeof(a);(a);

Napomena:Napomena:Duljina i opseg memorijskog prostora Duljina i opseg memorijskog prostora koje zauzimaju pojedini tipovi koje zauzimaju pojedini tipovi

podataka u C++ podataka u C++ nisu standardizirani! Podaci za nisu standardizirani! Podaci za cjelobrojnecjelobrojne tipove tipove mogu se naći u datoteci mogu se naći u datoteci limitslimits, a za , a za realnerealne u u cfloatcfloat..

cout << “Veličina cijelih brojeva: “ << cout << “Veličina cijelih brojeva: “ << sizeofsizeof (int); (int); cout <<“Veličina realnih brojeva: “<< cout <<“Veličina realnih brojeva: “<< sizeof sizeof (float);(float); float a = 2.51;float a = 2.51;

cout << Veličina a: ”<< cout << Veličina a: ”<< sizeofsizeof(a);(a);

Napomena:Napomena:Duljina i opseg memorijskog prostora Duljina i opseg memorijskog prostora koje zauzimaju pojedini tipovi koje zauzimaju pojedini tipovi

podataka u C++ podataka u C++ nisu standardizirani! Podaci za nisu standardizirani! Podaci za cjelobrojnecjelobrojne tipove tipove mogu se naći u datoteci mogu se naći u datoteci limitslimits, a za , a za realnerealne u u cfloatcfloat..

*

Page 10: Tipovi podataka

Brojevi bez predznakaBrojevi bez predznaka((unsignedunsigned))

Page 11: Tipovi podataka

unsigned unsigned short short int i = 50000;int i = 50000;

Kako je to moguće, ako se zna da jeKako je to moguće, ako se zna da jeSHRT_MAXSHRT_MAX = 2 = 21515 - 1 = 32767? - 1 = 32767?

Jednostavno! Krajnji lijevi bitJednostavno! Krajnji lijevi bitu kojem se inače nalazi predznak, koristi se za u kojem se inače nalazi predznak, koristi se za

broj:broj:USHRT_MAXUSHRT_MAX = 2 = 21616 - 1 = 65535 - 1 = 65535

*

Ali, broj ne smije biti negativan!!!Ali, broj ne smije biti negativan!!!

Page 12: Tipovi podataka

Doseg cjelobrojnih tipovaDoseg cjelobrojnih tipova#include #include <iostream><iostream>#include #include <limits><limits>using namespace using namespace std;std;int int main() {main() {

cout << "Granicne vrijednosti cjelobrojnih tipovacout << "Granicne vrijednosti cjelobrojnih tipova "" << "podataka" << endl << endl;<< "podataka" << endl << endl;

cout << "short: " << SHRT_MIN << "-" << SHRT_MAX cout << "short: " << SHRT_MIN << "-" << SHRT_MAX << endl;<< endl;

cout << "unsigned short: " << 0 << "-" << USHRT_MAXcout << "unsigned short: " << 0 << "-" << USHRT_MAX << endl;<< endl;

cout << "long: " << LONG_MIN << "-" << LONG_MAX cout << "long: " << LONG_MIN << "-" << LONG_MAX << endl;<< endl;

#include #include <iostream><iostream>#include #include <limits><limits>using namespace using namespace std;std;int int main() {main() {

cout << "Granicne vrijednosti cjelobrojnih tipovacout << "Granicne vrijednosti cjelobrojnih tipova "" << "podataka" << endl << endl;<< "podataka" << endl << endl;

cout << "short: " << SHRT_MIN << "-" << SHRT_MAX cout << "short: " << SHRT_MIN << "-" << SHRT_MAX << endl;<< endl;

cout << "unsigned short: " << 0 << "-" << USHRT_MAXcout << "unsigned short: " << 0 << "-" << USHRT_MAX << endl;<< endl;

cout << "long: " << LONG_MIN << "-" << LONG_MAX cout << "long: " << LONG_MIN << "-" << LONG_MAX << endl;<< endl;

*

Page 13: Tipovi podataka

Doseg cjelobrojnih tipovaDoseg cjelobrojnih tipova

cout << "unsigned long: " << 0 << "-" << ULONG_MAX cout << "unsigned long: " << 0 << "-" << ULONG_MAX

<< endl;<< endl;

cout << "int: " << INT_MIN << "-" << INT_MAX cout << "int: " << INT_MIN << "-" << INT_MAX

<< endl;<< endl;

cout << "unsigned int: " << 0 << "-" << cout << "unsigned int: " << 0 << "-" << UUINT_MAX INT_MAX

<< endl;<< endl;

cout << "char: " << SCHAR_MIN << "-" << SCHAR_MAX cout << "char: " << SCHAR_MIN << "-" << SCHAR_MAX

<< endl;<< endl;

cout << "unsigned char: " << 0 << "-" << UCHAR_MAX cout << "unsigned char: " << 0 << "-" << UCHAR_MAX

<< endl;<< endl;

returnreturn 0; 0;

}}

cout << "unsigned long: " << 0 << "-" << ULONG_MAX cout << "unsigned long: " << 0 << "-" << ULONG_MAX

<< endl;<< endl;

cout << "int: " << INT_MIN << "-" << INT_MAX cout << "int: " << INT_MIN << "-" << INT_MAX

<< endl;<< endl;

cout << "unsigned int: " << 0 << "-" << cout << "unsigned int: " << 0 << "-" << UUINT_MAX INT_MAX

<< endl;<< endl;

cout << "char: " << SCHAR_MIN << "-" << SCHAR_MAX cout << "char: " << SCHAR_MIN << "-" << SCHAR_MAX

<< endl;<< endl;

cout << "unsigned char: " << 0 << "-" << UCHAR_MAX cout << "unsigned char: " << 0 << "-" << UCHAR_MAX

<< endl;<< endl;

returnreturn 0; 0;

}}

*

Page 14: Tipovi podataka

Doseg decimalnih tipovaDoseg decimalnih tipova#include #include <iostream><iostream>#include #include <<ccfloafloatt>>#include #include <iomanip><iomanip>using namespace using namespace std;std;int int main() {main() { cout << "Granicne vrijednosti decimalnih tipovacout << "Granicne vrijednosti decimalnih tipova "" << "podataka" << endl << endl;<< "podataka" << endl << endl; long double a=LDBL_MAX;long double a=LDBL_MAX; cout << "float: " << setprecision(FLT_DIG) << -FLT_MAXcout << "float: " << setprecision(FLT_DIG) << -FLT_MAX << "-" << FLT_MAX << " , " << endl << " " << -<< "-" << FLT_MAX << " , " << endl << " " << -

FLT_MIN << "-" FLT_MIN << "-" << FLT_MIN << endl << " mantisa: " << << FLT_MIN << endl << " mantisa: " <<

FLT_MANT_DIG FLT_MANT_DIG << " bita" << endl << endl;<< " bita" << endl << endl;

#include #include <iostream><iostream>#include #include <<ccfloafloatt>>#include #include <iomanip><iomanip>using namespace using namespace std;std;int int main() {main() { cout << "Granicne vrijednosti decimalnih tipovacout << "Granicne vrijednosti decimalnih tipova "" << "podataka" << endl << endl;<< "podataka" << endl << endl; long double a=LDBL_MAX;long double a=LDBL_MAX; cout << "float: " << setprecision(FLT_DIG) << -FLT_MAXcout << "float: " << setprecision(FLT_DIG) << -FLT_MAX << "-" << FLT_MAX << " , " << endl << " " << -<< "-" << FLT_MAX << " , " << endl << " " << -

FLT_MIN << "-" FLT_MIN << "-" << FLT_MIN << endl << " mantisa: " << << FLT_MIN << endl << " mantisa: " <<

FLT_MANT_DIG FLT_MANT_DIG << " bita" << endl << endl;<< " bita" << endl << endl;

*

Page 15: Tipovi podataka

Doseg decimalnih tipovaDoseg decimalnih tipova

cout << "double: " << setprecision(DBL_DIG) << -DBL_MAX cout << "double: " << setprecision(DBL_DIG) << -DBL_MAX

<< "-"<< "-" << DBL_MAX << " , " << endl << " " << DBL_MAX << " , " << endl << " "

<< -DBL_MIN << "-" << DBL_MIN << endl << -DBL_MIN << "-" << DBL_MIN << endl

<< " mantisa: " << DBL_MANT_DIG << " bita" << << " mantisa: " << DBL_MANT_DIG << " bita" << endl;endl;

return return 0;0;

}}

cout << "double: " << setprecision(DBL_DIG) << -DBL_MAX cout << "double: " << setprecision(DBL_DIG) << -DBL_MAX

<< "-"<< "-" << DBL_MAX << " , " << endl << " " << DBL_MAX << " , " << endl << " "

<< -DBL_MIN << "-" << DBL_MIN << endl << -DBL_MIN << "-" << DBL_MIN << endl

<< " mantisa: " << DBL_MANT_DIG << " bita" << << " mantisa: " << DBL_MANT_DIG << " bita" << endl;endl;

return return 0;0;

}}

*

Page 16: Tipovi podataka

PPobrojenjaobrojenja

*

Page 17: Tipovi podataka

PobrojenjaPobrojenja(enumerated types)(enumerated types)

enum dani {ponedjeljak, utorak, srijeda, cetvrtak,enum dani {ponedjeljak, utorak, srijeda, cetvrtak, petak, subota, nedjelja}; petak, subota, nedjelja};

Ovom deklaracijom uvodi se Ovom deklaracijom uvodi se novi tip podatakanovi tip podataka (dani), te (dani), te sedam sedam nepromjenjivih identifikatoranepromjenjivih identifikatora (ponedjeljak, utorak,...) toga tipa. (ponedjeljak, utorak,...) toga tipa. Vrijednost prvog identifikatora biti ćeVrijednost prvog identifikatora biti će 0 0, drugog , drugog 11, itd.:, itd.:

dani HvalaBoguDanasJe = petak;dani HvalaBoguDanasJe = petak;dani ZakajJaNeVolim = ponedjeljak;dani ZakajJaNeVolim = ponedjeljak;cout<<HvalaBoguDanasJe<<endl; // ispisuje 4cout<<HvalaBoguDanasJe<<endl; // ispisuje 4

*

Page 18: Tipovi podataka

Operatori, operacije, Operatori, operacije, operandi, izrazioperandi, izrazi

Page 19: Tipovi podataka

operacijaoperacija

c=c=(a + b) (a + b)

izrazizrazc=c=(a + b)(a + b)

operandoperand operandoperand

operatoroperator

*

Page 20: Tipovi podataka

DefinicijeDefinicije

OperatorOperator je znak ili riječ koja određuje vrstu je znak ili riječ koja određuje vrstu operacije. operacije.

OperacijaOperacija je postupak koji želimo izvršiti. je postupak koji želimo izvršiti. OperandOperand je podatak koji sudjeluje u operaciji. je podatak koji sudjeluje u operaciji. IzrazIzraz je sažeta uputa računalu, odnosno prikaz je sažeta uputa računalu, odnosno prikaz

operacije koju želimo izvršiti s pomoću operacije koju želimo izvršiti s pomoću operanada (faktora).operanada (faktora).

*

Page 21: Tipovi podataka

AritmetičkiAritmetičkioperatorioperatori

*

Page 22: Tipovi podataka

unarni operatoriunarni operatori predznacipredznaci

+X+X unarni plusunarni plus -X -X unarni minusunarni minus

inkremencijainkremencijaX++X++ uvećaj nakonuvećaj nakon++X++X uvećaj prijeuvećaj prije

dekremencijadekremencijaX--X-- umanji nakonumanji nakon--X--X umanji prijeumanji prije

*

Unarni su oni Unarni su oni operatori koji se operatori koji se upotrupotreebljavaju u bljavaju u kombinaciji sa kombinaciji sa samo samo jednim jednim operandomoperandom..

Page 23: Tipovi podataka

prefiks operatoriprefiks operatori

++X++X uvećaj prijeuvećaj prije

--X--X umanji prijeumanji prije

primjer:primjer:int i=1;int i=1;cout<<(++i)<<endl;cout<<(++i)<<endl;// // ispisuje 2ispisuje 2

int i=1;int i=1;

i=i+1;i=i+1;

out<<i<<endl;out<<i<<endl;

// // ispisuje 2ispisuje 2Daje isti Daje isti rezultatrezultat

*

Page 24: Tipovi podataka

postfiks operatoripostfiks operatori

X ++ X ++ uvećaj nakonuvećaj nakon

X -- X -- umanji nakon umanji nakon

primjer:primjer:int i=1;int i=1;cout<<(i++)<<endl;cout<<(i++)<<endl;// // ispisuje 1, pa tekispisuje 1, pa tek// onda povećava ’i’// onda povećava ’i’

int i=1;int i=1;cout<<i<<endl;cout<<i<<endl;// // ispisuje 1ispisuje 1

i=i+1;i=i+1;

*

Daje isti Daje isti rezultatrezultat

Page 25: Tipovi podataka

binarni operatoribinarni operatori zbrajanjezbrajanje

X + YX + Y oduzimanjeoduzimanje

X - YX - Y množenjemnoženje

X * YX * Y dijeljenjedijeljenje

X / YX / Y modulomodulo**

X % YX % Y* * Ostatak od cjelobrojnog dijeljenja

*

Binarni su oni Binarni su oni operatori koji se operatori koji se upoterbljavaju u upoterbljavaju u

kombinaciji s kombinaciji s dva dva operandaoperanda..

Page 26: Tipovi podataka

operator dodjele tipaoperator dodjele tipa

Deklaracija i definicija varijabli:Deklaracija i definicija varijabli:int Brojnik = 1;int Brojnik = 1; int Nazivnik = 3;int Nazivnik = 3;

Želimo podijeliti dvije cjelobrojne varijable, a da Želimo podijeliti dvije cjelobrojne varijable, a da rezultat bude realni broj:rezultat bude realni broj:

Ovo je OK:Ovo je OK:float TocniKvocijent = (float)Brojnik / (float)Nazivnik;float TocniKvocijent = (float)Brojnik / (float)Nazivnik;

I ovo:I ovo: float TocniKvocijent = float(Brojnik) / float(Nazivnik);float TocniKvocijent = float(Brojnik) / float(Nazivnik);

OOvo nijevo nije u redu u redu::float Krivo = Brojnik / Nazivnik; float Krivo = Brojnik / Nazivnik; // ispisuje nulu!!!// ispisuje nulu!!!

*

Page 27: Tipovi podataka

KonstanteKonstante

*

Page 28: Tipovi podataka

Kada se u kôdu pojavljuju Kada se u kôdu pojavljuju brojčane konstantebrojčane konstante,, prevoditelj ih pohranjuje u formatu nekog od prevoditelj ih pohranjuje u formatu nekog od osnovnih tipova. osnovnih tipova.

S brojevima koji sadrže S brojevima koji sadrže dec. točkudec. točku ili slovo ili slovo ee,, odnosno odnosno E E, prevoditelj barata kao s podacima, prevoditelj barata kao s podacima tipa tipa doubledouble, dok sve ostale brojeve tretira kao, dok sve ostale brojeve tretira kao int int. Npr:. Npr: cout<<(cout<<(short)short) 10<<endl 10<<endl // // shortshort int int cout<<(unsigned) 60000<<endl // unsigned int cout<<(unsigned) 60000<<endl // unsigned int

Češće se za specificiranje konstanti koriste Češće se za specificiranje konstanti koriste sufiksisufiksi - posebni znakovi za eksplicitno određivanje tipa - posebni znakovi za eksplicitno određivanje tipa brojčane konstante. brojčane konstante.

*

Page 29: Tipovi podataka

Djelovanje sufiksa na Djelovanje sufiksa na cjelobrojne konstantecjelobrojne konstante

Broj ispred SufiksBroj ispred Sufiks Rezultirajući Primjer Rezultirajući Primjersufiksasufiksa tip tip

cijelicijeli int int 2468 2468

L, l L, l long intlong int 645672L 645672L U, u U, u unsigned int 65000U unsigned int 65000U

decimalni decimalni double double 3.14 3.14 F, f F, f float float 1.234F 1.234F L, l L, l long double long double 1.602e-4583L 1.602e-4583L

*

Page 30: Tipovi podataka

Simboličke konstanteSimboličke konstante umjestoumjesto float Opseg = 2. * r * 3.14159265359;float Opseg = 2. * r * 3.14159265359; float Povrsina = r * r * 3.14159265359;float Povrsina = r * r * 3.14159265359;

double Oplosje = 4. * r * r * 3.14159265359;double Oplosje = 4. * r * r * 3.14159265359;

*

može se pisatimože se pisaticonst double Pi = 3.14159265359;const double Pi = 3.14159265359;iliili#define Pi = 3.14159265359;#define Pi = 3.14159265359;i ondai ondafloat Opseg = 2. * r * Pi;float Opseg = 2. * r * Pi;float Povrsina = r * r * Pi;float Povrsina = r * r * Pi;double Oplosje = 4. * r * r * Pi;double Oplosje = 4. * r * r * Pi;žž

Page 31: Tipovi podataka

Oktalne konstante

int NadmorskaVisinaVarazdina = int NadmorskaVisinaVarazdina = 02550255// odgovara dekadskom 173// odgovara dekadskom 173

Konstante koje započinju sKonstante koje započinju s 0 (nula)0 (nula) interpretiraju se kaointerpretiraju se kao oktalneoktalne..

*

Page 32: Tipovi podataka

Heksadecimalne konstante

int ProsjGodisnjaTempZaVzd = int ProsjGodisnjaTempZaVzd = 0xA0xA

// odgovara dekadskom// odgovara dekadskom broju broju 10 10 Konstante koje započinju sKonstante koje započinju s 0x 0x

interpretiraju se kaointerpretiraju se kao heksadecimalneheksadecimalne

*

Page 33: Tipovi podataka

Logički i relacijskiLogički i relacijskioperatorioperatori

*

Page 34: Tipovi podataka

Logički tipovi podatakaLogički tipovi podataka

boolbool ImamLiMnogoNovaca = ImamLiMnogoNovaca =falsefalse;;boolbool JeLiVamDosadno = JeLiVamDosadno = truetrue;;

truetrue = 1; = 1; falsefalse = 0; = 0;

George BoolGeorge Bool (1815-1864), (1815-1864), engleski matematičar, engleski matematičar,

utemeljitelj logičke algebreutemeljitelj logičke algebre

*

Tip podataka bool je Tip podataka bool je zapravo pobrojenje:zapravo pobrojenje:

enum bool {false,true};enum bool {false,true};

Page 35: Tipovi podataka

Logički operatoriLogički operatori

! x! x negacija (negacija (notnot))

x && yx && y konjunkcija (konjunkcija (and - and - logičko ’logičko ’ii’)’)

x || yx || y disjunkcija (disjunkcija (or - or - logičko ‘logičko ‘iliili’)’)

*

Page 36: Tipovi podataka

a b (a& & b)

1 1 1

1 0 0

0 1 0

0 0 0

‘‘i’ tablicai’ tablica

*

Page 37: Tipovi podataka

‘‘ili’ tablicaili’ tablica

*

a b (a || b)

1 1 1

1 0 1

0 1 1

0 0 0

Page 38: Tipovi podataka

‘‘nene’ tablica’ tablica

*

a ! a

1 0

0 1

Page 39: Tipovi podataka

Operatori uspoređivanjaOperatori uspoređivanja

x x < < y y manje odmanje od

x x <=<= y y manje ili jednakomanje ili jednako

x x > > y y veće odveće od

x x >=>= y y veće ili jednakoveće ili jednako

x x = = = = yy jednakojednako

x x !=!= y y različito (nejednako)različito (nejednako)

*

Page 40: Tipovi podataka

Jednostavni logički izraziJednostavni logički izrazi

a = = ba = = boperand 1operand 1(subjekt)(subjekt)

operand 2operand 2(objekt)(objekt)

relacijarelacija(odnos)(odnos)

sudsud(tvrdnja)(tvrdnja)

*

Page 41: Tipovi podataka

Složeni logički izraziSloženi logički izrazi

(a < b) && (c = = d) || (e > f)(a < b) && (c = = d) || (e > f)

jednostavnijednostavnilog. izraz 1log. izraz 1

sudsud(tvrdnja)(tvrdnja)

jednostavnijednostavnilog. izraz 2log. izraz 2

jednostavnijednostavnilog. izraz 3log. izraz 3

logičkilogičkioperator 2operator 2

logički logički operator 1operator 1

*

Page 42: Tipovi podataka

Primjer 1.Primjer 1.

(a < b) && (c = = d) || (e > f)(a < b) && (c = = d) || (e > f)

00

*

11 11

00 11

11

a = b = 1a = b = 1c = d = 2c = d = 2

e = 4e = 4f = 3f = 3

&&&&

||||

Page 43: Tipovi podataka

Primjer 2.Primjer 2.

(a < b) && ((c = = d) || (e > f))(a < b) && ((c = = d) || (e > f))

00

*

11 11

00 11

00a = b = 1a = b = 1c = d = 2c = d = 2

e = 4e = 4f = 3f = 3

&&&&

||||

Page 44: Tipovi podataka

Prioriteti ispitivanjaPrioriteti ispitivanja

(1(1) zagrade) zagrade

((22) jednostavni logički izrazi) jednostavni logički izrazi

((33) negacije) negacije

((44) konjunkcija) konjunkcija

((55) disjunkcija) disjunkcija

*

Page 45: Tipovi podataka

ZadatakZadatak Fakultet nagrađuje najboljeg studenta studijskim putovanjem u SAD. Fakultet nagrađuje najboljeg studenta studijskim putovanjem u SAD.

Kandidiraju studenti A i B. Nagrada je samo jedna, a dobiti će je bolji. Kandidiraju studenti A i B. Nagrada je samo jedna, a dobiti će je bolji. Kriteriji:Kriteriji:

bolji je onaj koji ima bolji je onaj koji ima veću prosječnu ocjenu veću prosječnu ocjenu (Po),(Po), ako su im prosječne ocjene jednake, bolji je onaj koji je položio ako su im prosječne ocjene jednake, bolji je onaj koji je položio više više

ispita ispita (Bi),(Bi), ako imaju iste prosječne ocjene i jednaki broj položenih ispita, bolji ako imaju iste prosječne ocjene i jednaki broj položenih ispita, bolji

je onaj koji je ispite položio u je onaj koji je ispite položio u manje pokušajamanje pokušaja (Bp). (Bp). Zadatak:Zadatak: postavite složeni logički izraz čijim će se ispitivanjem doznati postavite složeni logički izraz čijim će se ispitivanjem doznati

tko će dobiti nagradu.tko će dobiti nagradu. PretpostavkaPretpostavka: ne može se dogoditi da svi kriteriji budu jednaki.: ne može se dogoditi da svi kriteriji budu jednaki.

*

Page 46: Tipovi podataka

RješenjeRješenjeifif (PoA>PoB) (PoA>PoB)

|| (PoA = = PoB) && (BiA > BiB)|| (PoA = = PoB) && (BiA > BiB) || (PoA = = PoB) && (BiA > BiB) && (BpA<BpB)|| (PoA = = PoB) && (BiA > BiB) && (BpA<BpB)cout << “A je bolji” << endl;cout << “A je bolji” << endl;

elseelsecout << “B je bolji” << endl;cout << “B je bolji” << endl;

Podaci za test (3)Podaci za test (3)

PoA=PoB=4.83PoA=PoB=4.83

BiA=BiB=28BiA=BiB=28

BpA=30BpA=30

BpB=29BpB=29

Podaci za test (2Podaci za test (2))

PoA=PoB=4.83PoA=PoB=4.83

BiA=28BiA=28

BiB=27BiB=27

BpA=30BpA=30

BpB=29BpB=29

*

Podaci za test (1Podaci za test (1))

PoA=4.82PoA=4.82

PoB=4.83PoB=4.83

BiA=BiB=28BiA=BiB=28

BpA=30BpA=30

BpB=29BpB=29 BB AA BB

Page 47: Tipovi podataka

Bitovni Bitovni operatorioperatori

*

Page 48: Tipovi podataka

Bitovni operatoriBitovni operatori

ii komplementkomplement

i & ni & n bitovni ‘i’bitovni ‘i’

i i || n n bitovni ‘ili’bitovni ‘ili’

ii ^ ^ n n isključivi ‘ili’isključivi ‘ili’

i i <<<< n n pomak u lijevopomak u lijevo

i i >>>> n n pomak u desnopomak u desno

*

Page 49: Tipovi podataka

KomplementKomplement

Postavlja Postavlja 0 (nule) u 1 (jedan),0 (nule) u 1 (jedan), a a 1 (jedan) u 0 (nule):1 (jedan) u 0 (nule):

Primjer:Primjer:00100101 = 1101101000100101 = 11011010

0010010100100101

Page 50: Tipovi podataka

KomplementKomplement

Postavlja Postavlja 0 (nule) u 1 (jedan),0 (nule) u 1 (jedan), a a 1 (jedan) u 0 (nule):1 (jedan) u 0 (nule):

Primjer:Primjer:00100101 = 1101101000100101 = 11011010

1101001010100101

Page 51: Tipovi podataka

KomplementKomplement

Postavlja Postavlja 0 (nule) u 1 (jedan),0 (nule) u 1 (jedan), a a 1 (jedan) u 0 (nule):1 (jedan) u 0 (nule):

Primjer:Primjer:00100101 = 1101101000100101 = 11011010

1111100101100101

Page 52: Tipovi podataka

KomplementKomplement

Postavlja Postavlja 0 (nule) u 1 (jedan),0 (nule) u 1 (jedan), a a 1 (jedan) u 0 (nule):1 (jedan) u 0 (nule):

Primjer:Primjer:00100101 = 1101101000100101 = 11011010

1101100010100101

Page 53: Tipovi podataka

KomplementKomplement

Postavlja Postavlja 0 (nule) u 1 (jedan),0 (nule) u 1 (jedan), a a 1 (jedan) u 0 (nule):1 (jedan) u 0 (nule):

Primjer:Primjer:00100101 = 1101101000100101 = 11011010

1101110101010101

Page 54: Tipovi podataka

KomplementKomplement

Postavlja Postavlja 0 (nule) u 1 (jedan),0 (nule) u 1 (jedan), a a 1 (jedan) u 0 (nule):1 (jedan) u 0 (nule):

Primjer:Primjer:00100101 = 1101101000100101 = 11011010

1101111011101101

Page 55: Tipovi podataka

KomplementKomplement

Postavlja Postavlja 0 (nule) u 1 (jedan),0 (nule) u 1 (jedan), a a 1 (jedan) u 0 (nule):1 (jedan) u 0 (nule):

Primjer:Primjer:00100101 = 1101101000100101 = 11011010

1101101101100101

Page 56: Tipovi podataka

KomplementKomplement

Postavlja Postavlja 0 (nule) u 1 (jedan),0 (nule) u 1 (jedan), a a 1 (jedan) u 0 (nule):1 (jedan) u 0 (nule):

Primjer:Primjer:00100101 = 1101101000100101 = 11011010

1101101110110111

Page 57: Tipovi podataka

KomplementKomplement

Postavlja Postavlja 0 (nule) u 1 (jedan),0 (nule) u 1 (jedan), a a 1 (jedan) u 0 (nule):1 (jedan) u 0 (nule):

Primjer:Primjer:00100101 = 1101101000100101 = 11011010

1101101011011010

Page 58: Tipovi podataka

KomplementKomplement

Postavlja Postavlja 0 (nule) u 1 (jedan),0 (nule) u 1 (jedan), a a 1 (jedan) u 0 (nule):1 (jedan) u 0 (nule):

Primjer:Primjer:00100101 = 1101101000100101 = 11011010

1101101011011010

*

Page 59: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘i’i’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) samo one bitove koji su kod samo one bitove koji su kod obaoba operanda operanda jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 & 00001111 = 0000010100100101 & 00001111 = 00000101

0010010100100101& & 0000111100001111

==

Page 60: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘i’i’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) samo one bitove koji su kod samo one bitove koji su kod obaoba operanda operanda jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 & 00001111 = 0000010100100101 & 00001111 = 00000101

0010010100100101& & 0000111100001111

= = 00

Page 61: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘i’i’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) samo one bitove koji su kod samo one bitove koji su kod obaoba operanda operanda jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 & 00001111 = 0000010100100101 & 00001111 = 00000101

0010010100100101& & 0000111100001111

= = 0000

Page 62: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘i’i’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) samo one bitove koji su kod samo one bitove koji su kod obaoba operanda operanda jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 & 00001111 = 0000010100100101 & 00001111 = 00000101

0010010100100101& & 0000111100001111

= = 000000

Page 63: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘i’i’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) samo one bitove koji su kod samo one bitove koji su kod obaoba operanda operanda jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 & 00001111 = 0000010100100101 & 00001111 = 00000101

0010010100100101& & 0000111100001111

= = 0000 0000

Page 64: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘i’i’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) samo one bitove koji su kod samo one bitove koji su kod obaoba operanda operanda jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 & 00001111 = 0000010100100101 & 00001111 = 00000101

0010010100100101& & 0000111100001111

= = 00000 00000

Page 65: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘i’i’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) samo one bitove koji su kod samo one bitove koji su kod obaoba operanda operanda jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 & 00001111 = 0000010100100101 & 00001111 = 00000101

0010010100100101& & 0000111100001111

= = 000001000001

Page 66: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘i’i’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) samo one bitove koji su kod samo one bitove koji su kod obaoba operanda operanda jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 & 00001111 = 0000010100100101 & 00001111 = 00000101

0010010100100101& & 0000111100001111

= = 00000100000010

Page 67: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘i’i’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) samo one bitove koji su kod samo one bitove koji su kod obaoba operanda operanda jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 & 00001111 = 0000010100100101 & 00001111 = 00000101

0010010100100101& & 0000111100001111

= = 0000010100000101

*

Page 68: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘ili’ili’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) sve one bitove koji su u sve one bitove koji su u bilo bilo kojemkojem operandu operandu jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 | 00001111 = 0010111100100101 | 00001111 = 00101111

0010010100100101 | | 0000111100001111

==

Page 69: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘ili’ili’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) sve one bitove koji su u sve one bitove koji su u bilo bilo kojemkojem operandu operandu jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 | 00001111 = 0010111100100101 | 00001111 = 00101111

0010010100100101 | | 0000111100001111

== 00

Page 70: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘ili’ili’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) sve one bitove koji su u sve one bitove koji su u bilo bilo kojemkojem operandu operandu jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 | 00001111 = 0010111100100101 | 00001111 = 00101111

0010010100100101 | | 0000111100001111

== 0000

Page 71: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘ili’ili’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) sve one bitove koji su u sve one bitove koji su u bilo bilo kojemkojem operandu operandu jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 | 00001111 = 0010111100100101 | 00001111 = 00101111

0010010100100101 | | 0000111100001111

== 001001

Page 72: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘ili’ili’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) sve one bitove koji su u sve one bitove koji su u bilo bilo kojemkojem operandu operandu jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 | 00001111 = 0010111100100101 | 00001111 = 00101111

0010010100100101 | | 0000111100001111

= 0010= 0010

Page 73: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘ili’ili’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) sve one bitove koji su u sve one bitove koji su u bilo bilo kojemkojem operandu operandu jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 | 00001111 = 0010111100100101 | 00001111 = 00101111

0010010100100101 | | 0000111100001111

= 00101= 00101

Page 74: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘ili’ili’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) sve one bitove koji su u sve one bitove koji su u bilo bilo kojemkojem operandu operandu jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 | 00001111 = 0010111100100101 | 00001111 = 00101111

0010010100100101 | | 0000111100001111

== 001011001011

Page 75: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘ili’ili’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) sve one bitove koji su u sve one bitove koji su u bilo bilo kojemkojem operandu operandu jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 | 00001111 = 0010111100100101 | 00001111 = 00101111

0010010100100101 | | 0000111100001111

== 00101110010111

Page 76: Tipovi podataka

Binarni (bitovni) ‘Binarni (bitovni) ‘ili’ili’

Postavlja Postavlja u 1 (jedan) u 1 (jedan) sve one bitove koji su u sve one bitove koji su u bilo bilo kojemkojem operandu operandu jednaki 1 (jedan). jednaki 1 (jedan).

Primjer:Primjer:00100101 | 00001111 = 0010111100100101 | 00001111 = 00101111

*

0010010100100101 | | 0000111100001111

== 0010111001011111

Page 77: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

Postavlja Postavlja u 1 (jedan) u 1 (jedan) samo one bitove koji su kod samo one bitove koji su kod oba operanda međusobno oba operanda međusobno različiti.različiti.

Zaštita!Zaštita!Ponovljeni postupak vraća staro stanje!Ponovljeni postupak vraća staro stanje!

Primjer:Primjer:00100101 ^ 00001111 = 0010101000100101 ^ 00001111 = 00101010

*

Page 78: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= =

Page 79: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 0= 0

Page 80: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00= 00

Page 81: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 001= 001

Page 82: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 0010= 0010

Page 83: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101= 00101

Page 84: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 001010= 001010

Page 85: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 0010101= 0010101

Page 86: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101010= 00101010

Page 87: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101010= 00101010^ ^ 0000111100001111

Page 88: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101010= 00101010^ ^ 0000111100001111 00

Page 89: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101010= 00101010^ ^ 0000111100001111 0000

Page 90: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101010= 00101010^ ^ 0000111100001111 001001

Page 91: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101010= 00101010^ ^ 0000111100001111 00100010

Page 92: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101010= 00101010^ ^ 0000111100001111 0010000100

Page 93: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101010= 00101010^ ^ 0000111100001111 001001001001

Page 94: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101010= 00101010^ ^ 0000111100001111 00100100010010

Page 95: Tipovi podataka

Isključivi ‘ili’ (Isključivi ‘ili’ (ex-or, exclusive orex-or, exclusive or))

0010010100100101^ ^ 0000111100001111

= 00101010= 00101010^ ^ 0000111100001111 0010010100100101

početnoočetnostanjestanje

Page 96: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 001100 11 00 00

Page 97: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

00 00 001100 11 00 00

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

Page 98: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 0011 11 00 00

Page 99: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:char char a = 20; cout<< (a<<1) << endl;a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 0011 11 00 00

Page 100: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 0011 11 00 00

Page 101: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 0011 11 00 00

Page 102: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 110011 00 00

Page 103: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 110011 00 00

Page 104: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 110011 00 00

Page 105: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 110011 00 00

Page 106: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 110011 00 00

Page 107: Tipovi podataka

Operatori ‘<<‘ i ‘>>’Operatori ‘<<‘ i ‘>>’

Pomiču sve bitovePomiču sve bitove lijevog operanda za onoliko lijevog operanda za onoliko mjesta mjesta u lijevou lijevo ili ili u desno u desno koliko je određeno koliko je određeno

desnim operandom.desnim operandom.

Primjer:Primjer:charchar a = 20; cout<< (a<<1) << endl; a = 20; cout<< (a<<1) << endl;Pomak za 1 bit u lijevo. Ispisuje se 40.Pomak za 1 bit u lijevo. Ispisuje se 40.

00 00 110011 00 00 00

*

Page 108: Tipovi podataka

Deklaracija Deklaracija typedeftypedef

typedef float broj;typedef float broj;

broj pi = 3.14159;broj pi = 3.14159;// isto je što i // isto je što i float pifloat pi

IdentifikatorIdentifikator broj broj = = sinonim zasinonim za floatfloat

*

Page 109: Tipovi podataka

Operator Operator sizeofsizeof

coutcout << “Dužina objekta tipa int je “<< “Dužina objekta tipa int je “<< sizeof (int) << “byte-ova”<< sizeof (int) << “byte-ova”<< endl;<< endl;

Daje Daje ukupnu dužinu objekta ukupnu dužinu objekta izraženu u izraženu u byte-ovima.byte-ovima.

*

Page 110: Tipovi podataka

Zarez: operator razdvajanjaZarez: operator razdvajanja

i = 10, i + 5; i = 10, i + 5; // rezultat: i=15// rezultat: i=15

Koristi se za Koristi se za razdvajanje izrazarazdvajanje izraza u u naredbama.naredbama.

*

Page 111: Tipovi podataka

Operatori pridruživanjaOperatori pridruživanja

Sastoje se od Sastoje se od operatoraoperatora i i znaka znaka jednakosti. jednakosti. Omogućavaju Omogućavaju kraći zapis kraći zapis naredbinaredbi, ali i njihovo brže izvršavanje, ali i njihovo brže izvršavanje::

= += -= *= /= %= >>= = += -= *= /= %= >>= <<= ^= &= |=<<= ^= &= |=

*

Page 112: Tipovi podataka

Primjeri s aritmetičkim Primjeri s aritmetičkim operatorima:operatorima:

charchar a; a;a = 20;

a += 5;

a -= 5;

a *= 5;

a /= 5;

a %= 5;

a = 20

a = 25

a = 20

a = 100

a = 20

a = 0

*

Page 113: Tipovi podataka

Primjeri s bitovnim Primjeri s bitovnim operatorima (1)operatorima (1)

charchar a = 20;a = 20;a << 1;//a << 1;//u lijevou lijevo

a >> 2; a >> 2; ////u desnou desnoa = 20;a = 20;

charchar b = 15;b = 15;a ^= b; //a ^= b; //ex-orex-or

a ^= b;a ^= b;a = 20;a = 20;b = 15;b = 15;a &= b; //a &= b; //bitovni ‘i’bitovni ‘i’

a = 00010100 = 20a = 00010100 = 20a = 00101000 = 40a = 00101000 = 40a = 00001010 = 10a = 00001010 = 10a = 00010100 = 20a = 00010100 = 20b = 00001111 = 15b = 00001111 = 15a = 00011011 = 27a = 00011011 = 27a = 00010100 = 20a = 00010100 = 20a = 00010100 = 20a = 00010100 = 20b = 00001111 = 15b = 00001111 = 15a = 00000100 = 4a = 00000100 = 4

*

Page 114: Tipovi podataka

Primjeri s bitovnim Primjeri s bitovnim operatorima (2)operatorima (2)

charchar a = 20;a = 20;

charchar b = 15;b = 15;

a |= b;//a |= b;//bitovni ‘ili’bitovni ‘ili’

a = 20; a = 20; b = ~a; b = ~a;

////komplementkomplement

a = 00010100 = 20a = 00010100 = 20b = 00001111 = 15b = 00001111 = 15a = 00011111 = 31a = 00011111 = 31a = 00010100 = 20a = 00010100 = 20b = 11101011 = 235b = 11101011 = 235

*