1 Uvod Zbrajanje i oduzimanje u binarnom sustavu Zbrajanje i oduzimanje u heksadecimalnom sustavu... 31

Σχετικά έγγραφα
4.4.1 Zbrajanje i oduzimanje u binarnom sustavu Zbrajanje i oduzimanje u heksadecimalnom sustavu

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

7 Algebarske jednadžbe

3.1 Granična vrednost funkcije u tački

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

1 Promjena baze vektora

Pošto pretvaramo iz veće u manju mjernu jedinicu broj 2.5 množimo s 1000,

Operacije s matricama

Linearna algebra 2 prvi kolokvij,

Riješeni zadaci: Nizovi realnih brojeva

ELEKTROTEHNIČKI ODJEL

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

Teorijske osnove informatike 1

TRIGONOMETRIJSKE FUNKCIJE I I.1.

Matematička analiza 1 dodatni zadaci

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

Neka je a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0 algebarska jednadžba trećeg stupnja. Rješavanje ove jednadžbe sastoji se od nekoliko koraka.

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

RIJEŠENI ZADACI I TEORIJA IZ

radni nerecenzirani materijal za predavanja

Linearna algebra 2 prvi kolokvij,

41. Jednačine koje se svode na kvadratne

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

18. listopada listopada / 13

Sortiranje prebrajanjem (Counting sort) i Radix Sort

1 Aksiomatska definicija skupa realnih brojeva

MATEMATIKA Pokažite da za konjugiranje (a + bi = a bi) vrijedi. a) z=z b) z 1 z 2 = z 1 z 2 c) z 1 ± z 2 = z 1 ± z 2 d) z z= z 2

Elementi spektralne teorije matrica

IZVODI ZADACI (I deo)

Program za tablično računanje Microsoft Excel

Riješeni zadaci: Limes funkcije. Neprekidnost

Determinante. a11 a. a 21 a 22. Definicija 1. (Determinanta prvog reda) Determinanta matrice A = [a] je broj a.

numeričkih deskriptivnih mera.

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

VJEŽBE 3 BIPOLARNI TRANZISTORI. Slika 1. Postoje npn i pnp bipolarni tranziostori i njihovi simboli su dati na slici 2 i to npn lijevo i pnp desno.

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

Numerička matematika 2. kolokvij (1. srpnja 2009.)

21. ŠKOLSKO/OPĆINSKO/GRADSKO NATJECANJE IZ GEOGRAFIJE GODINE 8. RAZRED TOČNI ODGOVORI

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

Dijagonalizacija operatora

Neka su A i B skupovi. Kažemo da je A podskup od B i pišemo A B ako je svaki element skupa A ujedno i element skupa B. Simbolima to zapisujemo:

Eliminacijski zadatak iz Matematike 1 za kemičare

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

Računarska grafika. Rasterizacija linije

1.4 Tangenta i normala

6 Polinomi Funkcija p : R R zadana formulom

Uvod u teoriju brojeva

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla

POVRŠINA TANGENCIJALNO-TETIVNOG ČETVEROKUTA

TRIGONOMETRIJA TROKUTA

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

ZBIRKA POTPUNO RIJEŠENIH ZADATAKA

SEMINAR IZ KOLEGIJA ANALITIČKA KEMIJA I. Studij Primijenjena kemija

VJEROJATNOST I STATISTIKA Popravni kolokvij - 1. rujna 2016.

POTPUNO RIJEŠENIH ZADATAKA PRIRUČNIK ZA SAMOSTALNO UČENJE

ELEMENTARNA MATEMATIKA 1

Prikaz sustava u prostoru stanja

IZVODI ZADACI (I deo)

Matematika 1 - vježbe. 11. prosinca 2015.

( x) ( ) ( ) ( x) ( ) ( x) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

9. GRANIČNA VRIJEDNOST I NEPREKIDNOST FUNKCIJE GRANIČNA VRIJEDNOST ILI LIMES FUNKCIJE

Funkcije dviju varjabli (zadaci za vježbu)

4. poglavlje (korigirano) LIMESI FUNKCIJA

Linearna algebra I, zimski semestar 2007/2008

Osnovne teoreme diferencijalnog računa

GLAZBENA UMJETNOST. Rezultati državne mature 2010.

Računarska grafika. Rasterizacija linije

( ) ( ) Zadatak 001 (Ines, hotelijerska škola) Ako je tg x = 4, izračunaj

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

Četrnaesto predavanje iz Teorije skupova

III VEŽBA: FURIJEOVI REDOVI

π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;

FTN Novi Sad Katedra za motore i vozila. Teorija kretanja drumskih vozila Vučno-dinamičke performanse vozila: MAKSIMALNA BRZINA

Više dokaza jedne poznate trigonometrijske nejednakosti u trokutu

Zavrxni ispit iz Matematiqke analize 1

Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema Algoritmi se mogu opisivati:

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

( , 2. kolokvij)

INTELIGENTNO UPRAVLJANJE

3. ELEMENTARNA TEORIJA BROJEVA Dokaži dajebroj djeljivs Dokažidajebroj djeljiv Dokaži dajebroj djeljiv

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

Najjednostavnija metoda upravljanja slijedom instrukcija:

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

SISTEMI NELINEARNIH JEDNAČINA

MATEMATIKA 1 8. domaća zadaća: RADIJVEKTORI. ALGEBARSKE OPERACIJE S RADIJVEKTORIMA. LINEARNA (NE)ZAVISNOST SKUPA RADIJVEKTORA.

Ĉetverokut - DOMAĆA ZADAĆA. Nakon odgledanih videa trebali biste biti u stanju samostalno riješiti sljedeće zadatke.

LINEARNA ALGEBRA 1, ZIMSKI SEMESTAR 2007/2008 PREDAVANJA: NENAD BAKIĆ, VJEŽBE: LUKA GRUBIŠIĆ I MAJA STARČEVIĆ

Kaskadna kompenzacija SAU

SKUPOVI I SKUPOVNE OPERACIJE

Transcript:

Sadržaj 1 Uvod 5 2 Povijesni razvoj računalnih sustava 7 2.1 Prva računalna pomagala....................... 7 2.2 Mehanička računalna.......................... 7 2.3 Moderna računala........................... 9 2.4 Komercijalna primjena računala.................... 11 2.5 Pojava mikroprocesora i osobnih računala.............. 13 3 Osnove računala 17 3.1 Što je računalo?............................. 17 3.2 Struktura računala........................... 18 3.2.1 Memorija velike brzine..................... 19 3.2.2 Centralna jedinica za obradu................. 20 3.2.3 Ulazno-izlazni sklopovi..................... 21 4 Osnovne operacije na računalu 23 4.1 Brojevi i brojevni sustavi....................... 23 4.2 Prezentacija podataka u memoriji................... 24 4.3 Zapisivanje prirodnih brojeva u raznim brojevnim sustavima... 26 4.3.1 Pretvaranje brojeva iz binarnog u heksadecimalni sustav i obratno............................. 26 4.3.2 Pretvaranje brojeva iz decimalnog u druge sustave..... 27 4.4 Računske operacije u binarnom, oktalnom i heksadecimalnom sustavu................................... 29 4.4.1 Zbrajanje i oduzimanje u binarnom sustavu......... 29 4.4.2 Zbrajanje i oduzimanje u heksadecimalnom sustavu.... 31 5 Pohranjivanje brojeva u računalu 35 5.1 Konvencija predznaka......................... 35 5.2 Konvencija dvostrukog komplementa................. 36 5.3 Aritmetičke operacije u konvenciji dvostrukog komplementa.... 37 1

2 SADRŽAJ 5.4 Binarni i alfanumerički kodovi..................... 39 5.4.1 Težinski kodovi......................... 40 5.4.2 ASCII kod........................... 41 5.4.3 Kodovi za otkrivanje pogrešaka................ 42 6 Planiranje i razvoj programske potpore 51 6.1 Osnove pisanja programa....................... 51 6.2 Rješavanje problema.......................... 52 6.3 Algoritmi................................ 53 6.4 Pseudokod i dijagram toka....................... 54 7 Pisanje programskog koda (kodiranje) 59 7.1 Programski jezici............................ 59 7.2 Varijable i konstante.......................... 60 7.2.1 Vrste jednostavnih podataka................. 61 7.3 Pridruživanje vrijednosti........................ 62 7.3.1 Aritmetički izrazi........................ 64 7.3.2 Komentiranje.......................... 65 7.4 Jednostavni unos i izlaz (Input/Output; I/O)............ 65 7.4.1 Unos i izlaz; C++....................... 66 7.4.2 C I/O.............................. 66 7.5 Pisanje cjelovitog programa...................... 67 8 Struktura i pisanje programa 71 8.1 Booleove algebra............................ 71 8.1.1 Booleove varijable i konstante................. 71 8.1.2 Booleovi izrazi......................... 72 8.2 Petlja za izbor............................. 73 8.2.1 Izbor izmedu dvije mogućnosti................ 74 8.2.2 Izbor izmedu više mogućnosti................. 75 8.3 Petlje za ponavljanje.......................... 77 8.3.1 Fiksna petlja (for petlja).................... 78 8.3.2 Pretest petlja (Do petlja )................... 79 8.3.3 Posttest petlja (Do while petlja ).............. 81 9 Numerički algoritmi 85 9.1 Primjeri numeričkih algoritama i nekih struktura podataka.... 85 9.1.1 Složenost numeričkih algoritama............... 89 9.2 Odredivanje složenosti......................... 91 9.2.1 Kako ocjenjujemo složenost algoritma?........... 93 9.3 Polja................................... 94 9.3.1 Dvodimenzionalna polja.................... 95

Sadržaj 3 9.4 Računske operacije s floating-point brojevima............ 96 9.4.1 Aproksimacije realnih brojeva strojnim (floating-point) brojevima.............................. 96 9.5 Jednosturka točnost, 32 bitni zapis.................. 97 9.5.1 Računske operacije sa strojnim (floating-point) brojevima. 98 9.5.2 Zakoni strojne aritmetike (floating-point aritmetika).... 99 10 Funkcije i potprogrami 103 10.1 Funkcije................................ 104 10.2 Potprogrami............................... 106 10.3 Djelokrug djelovanja i vrijeme trajanja odredenih okruženja (varijabli).................................. 107

4 Sadržaj

Poglavlje 1 Uvod 5

6 Uvod

Poglavlje 2 Povijesni razvoj računalnih sustava 2.1 Prva računalna pomagala Moglo bi se reći da su prva računala bili ljudi, tj. elektronska računala su nazvana upravo po ljudima koji su prije njihove pojave obavljali poslove računanja. Ti poslovi su obuhvaćali uzastopno izračunavanje navigacijskih tablica, pozicija planeta za astronomske potrebe ili matematičke izračune (npr. rješavanje linearnih sustava jednadžbi Jacobijevom metodom). Lako je zamisliti da na poslu, u kojem se iz sata u sat i iz dana u dan računaju samo jednostavne računske operacije zbrajanja i oduzimanja te množenja i dijeljenja, lako može doći do pogreške. Stoga su se ljudi u najranijim razdobljima svog postojanja trudili pronaći strojeve koji bi olakšali te mukotrpne poslove. Najstarije poznato pomagalo pri izvodenju računskih operacija je Abacus. Zbrajanje i oduzimanje na Abacusu se mogu izvoditi gotovo brzo kao i na ručnom elektroničkom kalkulatoru, dok se množenje i dijeljenje izvodi sporije. Najstariji poznati Abacus korišten je 300 godina p.n.e. u Babilonu, ali i danas se koristi i to najviše na istoku (Kina). 2.2 Mehanička računalna Škotski matematičar J. Napier (1550.-1617.) otkriva logaritme i 1614. godine objavljuje prve logaritamske tablice u knjizi Rabdologia. Otkriće logaritama bitno je pojednostavnilo operacije množenja i dijeljenja, koje su u to vrijeme bile vrlo složene matematičke operacije. Godine 1622. W. Oughtred (1574.-1660.) i E. Gunter (1581.-1626.) izraduju cirkularno logaritamsko računalo. Od 1654. godine u uporabi su ravna logaritamska računala ili pomična računala, u nas popularno zvana šiber. Popularnost pomičnih računala naglo je porasla 7

8 Povijesni razvoj računalnih sustava Slika 2.1: Vrlo stara verzija abacusa nakon 1850. godine kada je francuski topnički časnik A. Mannheim (1831.-1906.) računalu dodao klizni prozorčić s oznakama. Ta inačica pomičnog računala nazvana je astrolab, zbog česte primjene u astronomiji. U tom obliku pomična računala su se održala sve do 80-ih godina 20. stoljeća kad su ih u potpunosti zamijenili elektronički kalkulatori. Zanimljivo je istaknuti da su NASA-ini inženjeri 60-tih godina prošlog stoljeća koristili šibere u Apollo programu koji je uspješno završio spuštanjem čovjeka na Mjesec. Prvi poznati mehanički kalkulator izraduje 1623. godine njemački profesor W. Schickard ( 1592.-1635.), ali taj pronalazak ostaje dugo nepoznat zbog prerane smrti Schickarda i tek 1956. godine biva ponovno otkriven. Mnogo je poznatiji bio Pascalov kalkulator, pa je slava za izum prvoga mehaničkog kalkulatora pripala velikom francuskom znanstveniku Blaiseu Pascalu. Načelo djelovanja Pascalovog kalkulatora temeljilo se na napravi za mjerenje prijedenog puta kočije koju je u 2. stoljeću opisao Heron iz Aleksandrije. Na istom načelu rade brojila prijedenog puta u automobilima. Ni Pascalov niti Schickardov kalkulator nisu bili praktično primjenjivi zbog ograničenja tadašnje tehnologije koja nije omogućavala preciznu i pouzdanu izradu mehaničkih dijelova kao što su zupčanici, precizni prijenosni elementi i sl. Sljedeći veliki izumitelj, koji se ogledao u izradi mehaničkog kalkulatora, bio je G.W.Leibnitz (1646.-1716.). On je znatno pridonio napretku dvanaestak znanstvenih područja, od logike do lingvistike, a svoj kalkulator poznat kao Leibnitzov kotač izradio je 1672. godine u Parizu. Iako je taj kalkulator bio mnogo savršeniji od prethodnih dvaju i mogao je

Moderna računala 9 Slika 2.2: Moderinja verzija abacusa obavljati sve četiri osnovne aritmetičke operacije, nije bio pouzdan i upotrebljiv u praksi. Ograničenje je i opet bila tehnologija koja nije mogla slijediti Leibnitzovu zamiso. Mehanički kalkulatori ostali su gotovo nepromjenjeni sve do 1820. godine, kada Thomas De Colmar razvija komercijalno uspješan mehanički kalkulator koji je mogao izvoditi četiri osnovne računske operacije: zbrajanje, oduzimanje, množenje i djeljenje. Različite inačice tog modela poznatog pod engleskim nazivom arithmometer, proizvodile su se sljedećih stotinu godina. Napretkom fine mehanike otvara se mogućnost izrade pouzdanih mehaničkih kalkulatora. Mehanički stolni kalkulatori doživljavaju najveći razvoj na prijelazu iz 19. u 20. stoljeće. Švedanin W.T. Odhner konstruira uspješan mehanički kalkulator i 1874. godine počinje proizvodnju i prodaju modela koji su mnogi kasnije kopirali. Odhnerov kalkulator je u potpunosti zamijenio arithmometar. Amerikanac W.S. Borroughs (1857.-1898.) godine 1886. konstruira vrlo uspješan model koji prodaje tvrtka Arithmometer Company. Prvi mehanički kalkulator, koji je pokretao elektromotor, proizvodi se od 1920. godine. 2.3 Moderna računala Tokom drugog svjetskog rata količina potrebnog računanja je toliko porasla da je npr. 1944. godine u SAD-u količina proizvedenih topova ovisila o fizičkim mogućnostima ljudi koji su obavljali računanje ( ljudski kalkulator ). Stoga je SAD bio spreman financirati gotovo svaki projekt računala koji je obećavao razrješenje problema, pa se ubrzano počinju ostvarivati mnoge zamisli o računskim

10 Povijesni razvoj računalnih sustava strojevima. U isto vrijeme u Engleskoj se gradi elektronički programabilni kalkulator pod imenom Colossus. Slika 2.3: Stroj za dešifriranje Colossus Prvo računalo počelo je raditi 1943. godine, a napravljeno ih je ukupno deset. Računala su se čuvala u najvećoj tajnosti. Na temelju toga iskustva Englezi grade prvo posve elektroničko računalo (s elektroničkom memorijom) pod nazivom Manchester Mark I, koje je sadržavalo 2400 elektronskih cijevi. Komercijalno i praktično primjenjivo računalo pod nazivom EDSAC (engl. Electronic Delay Storage Automatic Calculator) Englezi grade 1949. godine. U to su vrijeme Englezi tehnološki posve ravnopravni s Amerikancima. No na njihovu žalost, ubrzo napuštaju istraživanja i njihovo financiranje i zauvijek zaostaju za Amerikancima. Zanimljivo je spomenuti da je engleski matematičar Alan Turing sa sveučilišta Cambridge u svom radu Hypotetical Machine opisao ustrojstvo modernog računala (memoriju, CPU i dr.). Njegov je rad bio posve teorijske naravi i Turing nikada nije pokazao zanimanje za gradnju računala prema navedenom načelu. U SAD-u se istodobno rada računalo pod nazivom ENIAC (engl. Electronic Numerator, Integrator, Analyzer and Computer), koje se općenito smatra prvim elektroničkim računalom (engl. computer). Razvijeno je na relativno malom i neuglednom američkom sveučilištu Moore School na prijedlog Johna W. Mauchlya. Glavni inžinjer projekta bio je Presper Eckert Jr., tako da se Mauchly i Eckert smatraju očevima modernih računala. Svakako valja spomenuti

Komercijalna primjena računala 11 J.V.Atanasoffa, koji je prvi osmislio ideju suvremene grade računala (način na koji je gradena većina suvremenih računala i mikroprocesora), i velikog matematičara dvadesetog stoljeća Johna von Neumana, koji je teorijski obradio i sistematizirao tu gradu. ENIAC je dovršen i pušten u rad u studenome 1945. godine, dakle tek nakon završetka 2. svjetskog rata. Sastojao se od 17468 elektroničkih cijevi, bio je težak oko 30 tona i imao snagu 174 kw. Izmedu ostaloga, ENIAC je služio za proračune prve hidrogenske bombe, a bio je u uporabi do 1955. godine. Slika 2.4: ENIAC: Electronic Numerical, Integrator, Analyzer and Calculator Uskoro započinje razvoj sličnih računala, primjerice EDVAC-a, ILLIAC-a, i dr. Sva su imala elektroničke cijevi i gradena su najčešće u sklopu sveučilišta, a financirala ih je vlada SAD-a. 2.4 Komercijalna primjena računala Mauchly i Eckert u meduvremenu osnivaju vlastitu tvrtku za proizvodnju elektroničkih računala, ali ubrzo zapadaju u nepremostive financijske teškoće i prisiljeni su prodati tvrtku. Kupila ih je tvrtka Remington Rand, a Mauchly i Eckert ostaju glavni konstruktori i grade prvo uspješno komercijalno elektroničko računalo pod nazivom UNIVAC. Za razliku od prvih primjeraka računala ostalih proizvodača koji su bili gradeni

12 Povijesni razvoj računalnih sustava Slika 2.5: ILLIAC II načinjen na Sveučilištu u Illinois-u za vojne potrebe, UNIVAC se prodavao poslovnim tvrtkama i proizvelo ih se ukupno 46. Prvi primjerak računala UNIVAC I isporučen je u ožujku 1951. godine Uredu za popis stanovništva SAD-a. Uz veliku promidžbu, računalo UNIVAC je 1952. godine upotrijebljeno za predvidanje rezultata predsjedničkih izbora u SAD-u. Na temelju samo 7% izbrojenih glasova računalo je predvidjelo točan rezultat izbora. To je uveliko pridonijelo popularizaciji računala i pobudilo zanimanje za njih. I dok su se IBM i UNIVAC bavili razvojem i prodajom velikih računala, koja su zbog visoke cijene mogle kupiti samo vlade pojedinih država ili velike tvrtke, K. H. Olsen 1957. godine osniva tvrtku DEC, Digital Equipment Corporation. Osjetivši potrebu za malim i pristupačnim računalima, primjerenima jednostavnim problemima malih i srednjih tvrtki, Olsen se odlučuje za proizvodnju malih računala namijenjenih industrijskom upravljanju. Budući da je radio na projektu SAGE, osnovnu koncepciju i iskustvo prenio je na prvo računalo tvrtke DEC koje se pojavilo 1959. godine pod nazivom PDP-1. Godine 1963. DEC proizvodi model PDP-8, prvo malo, komercijalno uspješno računalo. Cijena tog računala iznosila je 18000 US $, pa su prvi put i male tvrtke mogle kupovati i upotrebljavati računala. Godine 1977. DEC proizvodi 32-bitno malo računalo pod nazivom VAX, koje postiže velik komercijalni uspjeh. Porodica VAX računala bila je tako uspješna da ih je u 5 godina prodano više od 10000 primjeraka. Računala su iz laboratorija i posvećenih prostora najvećih tvrtki ušla u široku uporabu. Praktično neometana u području malih računala

Pojava mikroprocesora i osobnih računala 13 sve do potkraj 70-ih godina, tvrtka DEC doživljava nevjerojatan rast i 1983. godine ima 78000 zaposlenih. 2.5 Pojava mikroprocesora i osobnih računala Razvojem tehnologije sve se više elektroničkih komponenata može smjestiti na pločicu poluvodiča. Napokon su se 1970. godine svi osnovni elementi računala mogli smjestiti na samo jednu pločicu poluvodiča veličine nekoliko desetaka kvadratnih milimetara, pa je tako nastao mikroprocesor. Jednostavno rečeno, to je računalo na jednoj pločici poluvodiča. Iste godine, tvrtka INTEL tržištu nudi prvi mikroprocesor pod nazivom 4004. Godine 1973. ista tvrtka proizvodi mikroprocesor 8080, prvi 8-bitni mikroprocesor, uvelike prihvaćen na tržištu jer omogućuje proizvodnju malih i vrlo jeftinih računala. INTEL je sljedeće desetljeće i pol bio gospodar tržišta mikroprocesora s modelima 8086, 80286, 80386, 80486 te modelom Pentium. Osobno računalo koje je doista otvorilo put osobnoj uporabi računala, bilo je računalo tvrtke Apple, posebno model Apple II. U Europi su tu ulogu imala računala Sinclair Spectrum i Commodore C64. Zbog vrlo niske cijene bila su pristupačna praktično svakome, što je omogućilo široku računarsku naobrazbu. Slika 2.6: Apple 1 je prodavan kao računalo tipa uradi sam Računalo IBM PC koje se pojavilo 1981. godine konačna je prekretnica kojom započinje vladavina osobnih računala. Otada im neprestano raste snaga i snizuje se cijena.

14 Povijesni razvoj računalnih sustava Do sada računala dijelimo na 5 generacija. Svaku generaciju karakterizira veliki tehnološki napredak koji pomaže izgradnju manjih, jeftinijih i znatno efikasnijih uredaja. 1. generacija (1941-56) Karakteriziraju je elektronske cijevi i magnetni bubnjevi koji se koriste kao memorija. Velikih su dimenzija (ispunjavaju čitave sobe). Zbrajanje i oduzimanje trajalo je 50-70 ms (mili sekundi). Primjeri računala prve generacije su UNIVAC i ENIAC. Istaknimo da je ENIAC (Electronic Numerator, Integrator, Analyzer and Computer) zauzimao 90 m 2, a za zbrajanje mu treba 200 µs (mikro sekundi), odnosno 2000 instrukcjia u sekundi. Problem mu je zagrijavanje. 2. generacija (1957-64) Osnovne karakteristike 2. generacije su zamjena katodnih cijevi tranzistorima. Koristi se hibridna tehnika, na jednom modulu smješteno je više tranzistora, a kao unutarnja memorija koristi se magnetska jezgra. Iako je upotreba tranzistora omogućila proizvodnju manjih, bržih i jeftinijih računala i dalje postoji problem zagrijavanja i mogućih oštećenja. I dalje se za unos koriste bušene kartice, a za ispis se koriste pisači. Pojavljuju se i programski jezici, a brzina računala 2. generacije iznosi oko 1 MIPS-a, tj. milion instrukcija u sekundi što je oko 500 puta više nego ENIAC. 3. generacija (1965-71) Treću generaciju karakterizira upotreba integriranih krugova. Razvoj tehnologije je omogućio proizvodnju minijaturnih tranzistora smještenih na jednom poluvodiču koji je nazvan silikonski čip. To je omogućilo značajno povećanje brzine i učinkovitosti računala. Ovu generaciju takoder karakterizira novi način unošenja i ispisivanja podataka. Umjesto do tada korištenih bušenih kartica, korisnici s računalom komuniciraju preko tipkovnice i monitora. Razvijaju se i Operacijski Sustavi (OS), što omogućuje primjenu ražličitih aplikacijska istovremeno, pri čemu jedan centralni program (OS) nadzire korištenje memorije. Brzina računala dostiže 10 MIPS-a, pri čemu su ona puno manja i jeftinija te postaju dostupna širokom broju korisnika. 4. generacija (1972-89) Četvrtu generaciju karakteriziraju mikroprocesori.

Pojava mikroprocesora i osobnih računala 15 Mikroprocesor se sastoji od velikog broja (preko tisuću) integriranih krugova smještenih na jednom silikonskom čipu. Ono što je u prvoj generaciji računala bilo smješteno u čitavu sobu sada se nalazilo na pločici veličine ljudskog dlana. Intel je 1971. godine razvio čip 4004, na kojem su bile smještene sve računalne komponente od centralne procesorske jedinice i memorije do ulaznoizlazne jedinice. Godine 1981. IBM uvodi prvo kućno računalo a 1984 Apple predstavlja Macintosh. Svakim danom ta kućna računala postaju sve moćnija, a mogućnošću njihovog povezivanja pojavila se i mogućnost razvoja Interneta. Četvrta generacija je omogućila razvoj grafičkih sučelja (Graphical User Interface - GUI), korištenje miša,.... Dolazi do razvoja programskih jezika C, C++, Pascal, ldots. Današnja računala Današnja računala pripadaju tzv. petoj generaciji, koju karakterizira umjetna inteligencija. Visoko integrirana računala, čija je moć računanja od nekoliko 1000 MIPS-a, omogućila su razvoj umjetne inteligencije (npr. prepoznavanje glasa) koja se i dalje intenzivno razvija. Intenzivno se radi na primjenama kvantne, molekularne i nano tehnologije. Glavni cilj nove generacije računala je glasovno unošenje podataka i mogućnost samoorganiziranja računala.

16 Povijesni razvoj računalnih sustava

Poglavlje 3 Osnove računala 3.1 Što je računalo? Računalo je stroj koji, u skladu sa uputama definiranim u programu, može obradivati podatke te izvoditi osnovne računske i logičke operacije. Termin program podrazumjeva skup instrukcija složenih odredenim redoslijedom u skladu sa kojima računalo izvodi gore navedene operacije sa ciljem izvodenja odredenog zadatka. Na računalo možemo gledati sa dva osnovna nivoa. Prvi se odnosi na nama vidljivi dio a drugi na primjenu. Vidljivi dio se najčešće naziva arhitektura računala ili hardware, a podrazumjeva dijelove računala kao što su monitor, pisač, tipkovnica, miš te drugi elektronski dijelovi računala. Kao što smo naveli, osnovne operacije koje računalo izvodi možemo podijeliti na Unos podataka (input): Pri unosu podataka, računalo prihvaća podatke predstavljene na način na koje ih računalo može razumjeti. U ovom kontekstu podatak (data) odnosi se na bilo kakav neorganizirani, sirovi materijal, sastavljen od riječi, brojeva, slika ili njihovih kombinacija. Obrada (processing): Kod obrade, računalo izvodi aritmetičke ili usporedbene (logičke) operacije sa predstavljenim podacima. Te operacije su uistinu jako jednostavne. U biti, većina stvari koje mikroprocesor (srce računala) stvarno izvodi, temelji se na operaciji zbrajanja ili usporedivanja dvaju brojeva. Medutim, budući da je brzina kojom izvodi te informacije izuzetno velika (milijune u sekundi), to računalu omogućava široki spektar upotrebe. Druga činjenica koja je bila presudna za prodor računarstva, je upravo pouzdanost u izvodenju obrade. 17

18 Osnove računala Čak i najjeftinija računala mogu godinama izvoditi nekoliko milijuna operacija u sekundi bez greške uzrokovane funkcioniranjem hardverskih komponenti. (Većina pogrešaka računala uzrokovane su logikom u programiranju ili početnim pogreškama u podacima koje se unose u računalo, o čemu ćemo detaljno govoriti kasnije). Izlaz (output): Treća operacija ima za cilj predstaviti rezultate obrade na način razumljiv ljudima. Obradeni podaci proslijeduju se kao informacija. Pohranjivanje (storage): Pri pohranjivanju računalo sprema rezultate kako bi se mogli kasnije koristiti. Količina podataka koju može spremiti i dobaviti jeftinije računalo mogla bi se usporediti sa enciklopedijom tiskanom u 32 volumena. 3.2 Struktura računala Većina računalnih sustava sadrži tri osnovne strukture: memorija velike brzine centralna jedinica za obradu ulazno-izlazni sklopovi Slika 3.1: Osnovna struktura računala

Struktura računala 19 3.2.1 Memorija velike brzine Memorija, o kojoj je ovdje riječ, ugradena je u samo računalo. To je ona memorija koju procesor (CPU) koristi za neposredno dobavljanje i pohranjivanje podataka, a zovemo ju i glavna memorija ili fizička memorija. Dok je računalo uključeno i obraduje podatke, ti podaci i programi nalaze se u radnoj memoriji. U većini slučajeva memorija se sastoji od čipova načinjenih od metalnog oksida na silikonskoj pločici. Takvu vrstu memorije nazivamo RAM što je skraćenica za Random Acces Memory. Memorija računala je podijeljena na logičke jedinice jednake veličine od kojih najjednostavniju nazivamo byte(čitamo bajt). Svaki se byte sastoji od 8 uzastopnih bit-ova, ili binarnih znamenki. Pohranjivanje bita u memoriju računala podrazumijeva postojanje uredaja koji može biti u jednom od dva stanja kao što je prekidač (upaljen ili ugašen). Jedno se stanje koristi za predstavljanje nule, a drugo za jedinicu. U primjenama često koristimo oznake 1B = jedan byte i 1b = jedan bit. 1 byte 7 6 5 4 3 2 1 0 Najznacajniji bit Najmanje znacajni bit Slika 3.2: Shematski prikaz bytea Memorijske lokacije možemo zamisliti kao niz pretinaca, od kojih svaki ima svoju adresu. I ne samo da svaka memorijska jedinica ima svoju adresu, nego i unutar pojedinog bytea zna se točan redoslijed bitova prema važnosti. Krajnje lijevi bit u byteu je bit najveće važnosti, a onaj krajnje desni je najmanje značajan bit. Kao bitnu posljedicu označavanja (adresiranja) byteova i bitova u njima, čitavu glavnu memoriju možemo predstaviti jednim dugačkim redom. Dijelovi tog dugog reda mogu se iskoristiti za pohranjivanje uzorka bitova koji je dulji od 1 bytea. Obično ga spremamo u string koji je cjelobrojni višekratnik osnovne memorijske ćelije. Osim toga, ovakav način organiziranja memorije omogućava nam direktni pristup sadržaju svake memorijske lokacije, bez obzira gdje se ona nalazi (kaotično

20 Osnove računala 1 nibble 4 bita 1 byte 8 bita 1 riječ 2 bytea = 16 bita 1 duga riječ 4 bytea = 32 bita 1 kvadratna riječ 8 bytea = 64 bita 1 oktalna riječ 16 bytea = 128 bita Tablica 3.1: Uobičajena imena za skupove bitova random). Stoga se ovakve memorije zovu RAM-ovi (random access memory). Osim tih vrsta memorije, glavnu memoriju čine i ROM-ovi (memorije koje služe samo za čitanje). Kapacitet memorije mjeri se ukupnim brojem byteova koji se mogu u nju pohraniti. Današnja računala imaju 256 MB, 512 MB ili 1 GB i više kapaciteta glavne memorije. Budući da se memorijski sustavi izraduju tako da je ukupan broj lokacija potencija broja 2, veličina memorije kod starijih sustava često se mjerila jedinicom od 1024 bita, što odgovara broju 2 10. Kako je 1024 približno 1000, društveno je prihvaćen prefiks kilo kao dodatak osnovnoj jedinici. Stoga je termin kilobyte (KB) označavao 1024 bita, a za stroj sa 4096 adresnih lokacija govorilo se da ima 4 KB memorije. Kako je memorija postajala sve veća, u upotrebu dolaze termini megabyte (MB) (1 MB=2 20 B= 1048576B 10 6 B) i gigabyte (GB) (1 GB = 2 30 B= 1073741824B 10 9 B). Poželjno je da RAM bude što većeg kapaciteta kako bi se pohranilo što više podataka, što nadalje omogućava brži pristup većoj količini podataka pa je računalo sa većim RAM-om pogodnije (brže) za korištenje. Druga vrsta memorije je tzv. ROM memorija (Read Only Memory) ispisna memorija, tj. memorija u koju se podatak može upisati samo jednom. Nakon upisa, podatak se može čitati onoliko puta koliko se želi, ali ne i mijenjati, brisati ili upisivati novi podatak. Zato je primjena ove memorije ograničena na pohranu podataka koji su uvijek jednaki i nepromijenjeni. 3.2.2 Centralna jedinica za obradu Centralna jedinica za obradu (CPU - Central Processing Unit) je mozak računala. U prethodnom dijelu pažnja je bila posvećena pohranjivanju podataka i organizaciji same memorije u računalu. Jednom kada su podaci pohranjeni, stroj mora biti sposoban manipulirati sa tim podacima u skladu sa naredbama algoritma. Dakle, stroj mora imati ugradenu sposobnost izvodenja operacija i koordiniranja redoslijeda izvodenja operacija. Centralna je jedinica za obradu (CPU) ili obično procesor, sastavljena od dva osnovna dijela: aritmetičko logičke jedinice (AL) u kojoj su sklopovi za manip-

Struktura računala 21 ulaciju sa podacima i upravljačke jedinice koja koordinira aktivnostima unutar računala. Za privremeno čuvanje podataka CPU koristi registre tzv. opće i posebne namjene. Registri opće namjene služe kao privremeni spremnici podataka koji se obraduju unutar CPU-a. U ovim registrima čuvaju se vrijednosti koje ulaze u aritmetičko logičku jedinicu i čuvaju se rezultati koji se iz AL jedinice tamo pošalju. 3.2.3 Ulazno-izlazni sklopovi Ulazno-izlazni sklopovi (I/O sklopovi ili Input-output sklopovi) služe za povezivanje računala s okolinom. Pod okolinom se podrazumijeva sve ono što se nalazi izvan računala. Programe i podatke, koji se obraduju u računalu, potrebno je na neki način dostaviti računalu, a isto je tako potrebno dobivene rezultate dostaviti korisniku. Ulazni sklopovi su gradeni tako da omogućuju priključivanje vanjskih jedinica pomoću kojih je moguće iz okoline podatke predavati računalu. Podaci na taj način ulaze u računalo, pa se takvi sklopovi nazivaju ulaznim sklopovima. Izlazni sklopovi omogućuju priključivanje vanjskih jedinica pomoću kojih je moguće podatke iz računala predavati okolini. Podaci na taj način izlaze iz računala, pa se takvi sklopovi nazivaju izlaznim sklopovima. U sklopu računala postoji više ulazno-izlaznih sklopova koji omogućuju priključivanje najrazličitijih vanjskih jedinica, kao što su: tipkovnica, monitor, magnetski disk, zvučnici, itd. Da bi mogli izmjenjivati podatke, CPU i RAM povezani su skupom žica BUS-om. Preko BUS-a, CPU može dohvatiti ili pročitati podatke iz RAM-a proslijedivanjem adrese odgovarajuće memorijske lokacije i signala za čitanje. Na isti se način podaci mogu upisati u memoriju postavljanjem na BUS adrese lokacije odredišta, postavljanjem podatka i signala za pisanje. Slijedom ovih uputa, zadatak zbrajanja dvaju pohranjenih vrijednosti iz RAM-a uključuje puno više od provodenja same operacije zbrajanja. Proces uključuje koordiniranu akciju upravljačke jedinice koja upravlja prijenosom informacija izmedu radne memorije i registra unutar CPU-a, i aritmetičko logičke jedinice koja izvodi operacije zbrajanja u trenutku kada joj upravljačka jedinica da znak da ih izvede. Cjelokupan postupak zbrajanja dvaju vrijednosti pohranjenih u memoriju mogao bi se predstaviti procedurom sastavljenom od 5 koraka: Korak 1: Uzmi prvu vrijednost koja se zbraja i pohrani je u registar. Korak 2: Uzmi drugu vrijednost koja se zbraja i pohrani je u drugi registar. Korak 3: Aktiviraj sklopove za zbrajanje sa vrijednostima koje su pohranjene u registrima tijekom prva dva koraka. Korak 4: Rezultat operacije pohrani u memoriju.

22 Osnove računala Korak 5: Stani. Ukratko, podaci se moraju prenijeti iz memorije u CPU, a rezultat se na kraju ponovno pohranjuje u memoriju. Primjer 3.1 Koliko 3 GB ima byta? Rješenje: 3GB = 3 1024 3 B = 3221225472B. Zadatak 3.1 Računalo ima memoriju od 32 MB. Kolika je njegova stvarna memorija izražena u bytima? Zadatak 3.2 Koliko 15 EB iznosi preračunato u byte?

Poglavlje 4 Osnovne operacije na računalu Operacije s podacima koje izvodi računalo kontrolira kontrolna jedinica koja je odgovorna za pravilan protok podataka unutar glavne memorije (CPU). Medutim, postavlja se pitanje kako će računalo znati izvesti naredbu zbroji, oduzmi ili neku drugu kada znamo da je ono sposobno pročitati samo niz nula i jedinica. Odgovor je jednostavan. Osnovni format odredene instrukcije ima sljedeći oblik: operator [operand 1 ], [operand 2 ], [operand 3 ] pri čemu pod operatorom podrazumijevamo jednu od operacija zbrajanja, množenja, dijeljenja, usporedbe,..., dok operand i, i = 1, 2, 3, predstavlja dio informacije na kojoj će biti obavljena operacja. Nadalje, svaka od operacija ima svoj numerički kod, pa tako za zbrajanje imamo 10000001 ili za množenje 10000110. Na primjer, tipična naredba za zbrajanje dvaju podataka koji se nalaze na adresama lokacija 1 i lokacija 2 (vidi prošli paragraf) bi glasila ZBROJIW3 lokacija 1, lokacija 2, rezultat Ova naredba zbraja ( dodaje ) sadržaj riječi na adresama lokacija 1 i lokacija 2 i sprema ih na adresu rezultat. Slovo W ukazuje da su operandi riječi, dok broj 3 ukazuje na broj operanada u naredbi. 4.1 Brojevi i brojevni sustavi Brojevni sustavi mogu biti pozicijski i nepozicijski. Najpoznatiji nepozicijski brojevni sustav, koji se i danas upotrebljava, je sustav rimskih brojeva, dok su većina brojevnih sustava koji se i danas koriste, upravo pozicijski sustavi. Danas se najčešće koristi dekadski brojevi sustav čije su znamenke 0, 1,... i 9. Značenje dekadskog zapisa p s p s 1... p 1 p 0, gdje su p s,..., p 0 23

24 Osnovne operacije na računalu dekadske znamenke je sljedeće: p s p s 1 p 1 p 0 = p s 10 s + p s 1 10 s 1 +... + p 1 10 1 + p 0 10 0. Na primjer 582532 = 5 10 5 + 8 10 4 + 2 10 3 + 5 10 2 + 3 10 1 + 2 10 0. Dekadski brojevni sustav za bazu ima broj 10. Općenito, za bilo koji n N postoji brojevni sustav kojemu je baza broj n, pri čemu se bilo koji broj može zapisati pomoću n različitih simbola iz skupa {0, 1,..., n 2, n 1}. Tada broj n zovemo baza sustava, a koeficijente iz skupa {0, 1,..., n 2, n 1} zovemo znamenke u danom brojevnom sustavu. Kako je dekadski brojevni sustav u svakodnevnoj ljudskoj upotrebi, to su njegova svojstva dobro poznata, pa provodenje osnovnih računskih operacija nije potrebno posebno opisivati. Istaknimo da se sve osnovne računske operacije mogu svesti na operaciju zbrajanja. Operacija oduzimanja može se zamijeniti operacijom zbrajanja komplementa umanjitelja. Potenciranje se može provesti kao niz množenja, a množenje kao niz zbrajanja. Dijeljenje se može obaviti uzastopnim oduzimanjem i slično. Medutim, budući da računala mogu prepoznati samo dvije znamenke, njima je najprirodniji binarni brojevni sustav u kome je baza broj 2, a znamenke su 0 i 1. Binarnim znamenkama iskazuju se vrijednosti stanja bitova kao osnovnih fizičkih jedinica podataka. Osim spomenutih sustava, najčešće su u upotrebi oktalni sustav s bazom 8 i heksadecimalni sustav s bazom 16. Sljedeća tablica prikazuje brojevne sustave i odgovarajuće znamenke. sustav znamenke Dekatski 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Binarni 0, 1 Oktalni 0, 1, 2, 3, 4, 5, 6, 7 Heksadecimalni 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Tablica 4.1: Znamenke brojevnih sustava 4.2 Prezentacija podataka u memoriji Kao što smo već u nekoliko navrata rekli, podaci smješteni u memoriju računala sastoje se od niza znamenaka 0 i 1. Postavlja se pitanje kako računalo zna koju vrstu podatka čita? Odnosno kako zna da dani niz, npr. 10000001 pročita kao zbroji, a ne kao broj 129. Odgovor je jednostavan: računalo zna o kojoj vrsti podatka se radi iz konteksta u kojem je korišten. Sljedeći primjer će ilustrirati

Zapisivanje prirodnih brojeva 25 ovu činjenicu tako što će pokazati kako se u različitim situacijama niz od 4 jednaka bytea može pročitati na različite načine. Primjer 4.1 Dan je niz od 4 bytea. a) individualne byteove b) dvije riječi, svaka sa po 2 bytea c) dugu riječ od 4 bytea? Što predstavlja taj niz ako ga čitamo kao 01100011 01100101 01000100 01000000 Rješenje: a) čitajući s lijeva na desno, dobivamo: 01000000 (2 = 0 2 7 + 1 2 6 + 0 2 5 + 0 2 4 + 0 2 3 + 0 2 2 + 0 2 1 + 0 2 0 = 64 (10 01000100 (2 = 0 2 7 + 1 2 6 + 0 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 0 2 0 = 68 (10 01100101 (2 = 0 2 7 + 1 2 6 + 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 101 (10 01100011 (2 = 0 2 7 + 1 2 6 + 1 2 5 + 0 2 4 + 0 2 3 + 0 2 2 + 1 2 1 + 0 2 0 = 99 (10 b) 0100010001000000 (2 = 0 15 1 14 0 13 0 12 0 11 1 10 0 9 0 8 0 7 1 6 0 5 0 4 0 3 0 2 0 1 0 0 = 1 2 14 + 1 2 10 + 1 2 6 = 17427 (10 0110001101100101 (2 = 0 15 1 14 1 13 0 12 0 11 0 10 1 9 1 8 0 7 1 6 1 5 0 4 0 3 1 2 0 1 1 0 = 1 2 14 + 1 2 13 + 1 2 9 + 1 2 8 + 1 2 6 + 1 2 5 + 1 2 2 + 1 2 0 = 24445 (10 c) jedna duga riječ 01100011011001010100010001000000 (2 = 0 31 1 30 1 29 0 28 0 27 0 26 1 25 1 24 0 23 1 22 1 21 0 20 0 19 1 18 0 17 1 16 0 15 1 14 0 13 0 12 0 11 1 10 0 9 0 8 0 7 1 6 0 5 0 4 0 3 0 2 0 1 0 0 = 1667580992 (10

26 Osnovne operacije na računalu 4.3 Zapisivanje prirodnih brojeva u raznim brojevnim sustavima U ovom poglavlju ćemo proučavati veze izmedu zapisa brojeva u različitim brojevnim sustavima. Kao što se može vidjeti u Tablici 4.2, svakom binarnom nizu (broju u binarnom sustavu) odgovara jedan i samo jedan broj u jednom od preostalih sustava. Sljedeća tablica sadrži zapis brojeva 0,..., 15 u dekadskom (dec), oktalnom (oct), heksadecimalnom (hex) i binarnom (bin) sustavu. dec oct hex bin 0 0 0 0 1 1 1 1 2 2 2 10 3 3 3 11 4 4 4 100 5 5 5 101 6 6 6 110 7 7 7 111 8 10 8 1000 9 11 9 1001 10 12 A 1010 11 13 B 1011 12 14 C 1100 13 15 D 1101 14 16 E 1110 15 17 F 1111 Tablica 4.2: Ekvivalencija zapisa u binarnom, oktalnom, dekadskom i heksadecimalnom sustavu Činjenica o ekvivalenciji ima za posljedicu da broj zapisan u jednom sustavu možemo pretvoriti u broj zapisan u nekom drugom sustavu, pri čemu je takav zapis jedinstven. 4.3.1 Pretvaranje brojeva iz binarnog u heksadecimalni sustav i obratno Ako je broj zapisan u heksadecimalon sustavu, njegov binarni ekvivalent odredujemo tako da svaku heksadecimalnu znamenku prikažemo kao 4 binarne znamenke (4 bita). Prisjetite se da sa 4 bita možemo kodirati 16 različitih kombinacija (koliko je i znamenaka u heksadecimalnom sustavu).

Zapisivanje prirodnih brojeva 27 Primjer 4.2 Odredite binarni zapis heksadecimalnog broja AF3B1. Rješenje: Uzimajući u obzir vrijednosti iz Tablice 4.2 dobivamo A F 3 B 1 1010 1111 0011 1011 0001 Tako da je AF3B1 (16 =10101111001110110001 (2 Za pretvaranje binarnih brojeva u heksadecimalne, potrebno je prvo binarni broj podijeliti u grupe od po 4 znamenke (počevši s desna na lijevo). Ako nakon tog postupka posljednja grupa ima manje od 4 znamenke, potrebno joj je dodati nule na lijevo tako da i ta grupa ima 4 znamenke. Nakon toga, svaku od tih grupa treba zapisati pomoću heksadecimalnih znamenki: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E i F. Primjer 4.3 Odredite heksadecimalni zapis binarnog broja 10101111101010 Rješenje: Podijelimo prvo binarni broj u grupe od po 4 znamenke: 10 1011 1110 1010 Budući da smo nakon podjele u posljednjoj grupi dobili broj 10, dodavanjem dvije nule, broj koji ćemo pretvarati u heksadecimalni ima oblik: 0010 1011 1110 1010 Uzimajući u obzir vrijednosti iz Tablice 4.2, dobivamo 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 2 B E A Tako da je 10101111101010 (2 =2BEA (16. 4.3.2 Pretvaranje brojeva iz decimalnog u druge sustave Pretvaranje decimalnog broja u broj baze n 2 izvodi se uzastopnim dijeljenjem decimalnog broja brojem n i zapisivanjem ostatka sve dok rezultat dijeljenja ne bude 0. U sljedećem primjeru ćemo ilustrirati taj postupak na pretvaranju decimalnog u binarni broj.

28 Osnovne operacije na računalu Primjer 4.4 Odredite binarni zapis dekadskog broja 25. Rješenje: Postupak se svodi na uzastopno dijeljenje broja 25 brojem 2 i zapisivanje ostatka dijeljenja. Dakle, nakon djeljenja 25 sa 2 dobivamo 12 i ostatak je 1, dalje, 12 dijelimo sa 2 i dobivamo 6, ostatak je 0. Zatim 6 dijelimo sa 2 i dobivamo 3, ostatak je 0, a nakon djeljenja broja 3 s 2 dobivamo 1 s ostatkom 1, i, konačno, podijelimo li 1 sa 2, dobivamo 0 i ostatak 1. Ovaj postupak je pregledniji ako ga zapišemo u tablicu: Čitajući posljednji Broj Kvocijent nakon Ostatak dijeljenja s 2 dijeljenja 25 12 1 12 6 0 6 3 0 3 1 1 1 0 1 stupac u smjeru od dolje prema gore, dobivamo da je binarni zapis broja 25 dan sa 11001 (2. Obratni postupak pretvaranja broja baze n u decimalni broj izvodi se direktnim uvrštavanjem opisanim u poglavlju 4.1 i primjeru 4.1. Na primjer, dekadsku vrijednost binarnog broja 1011001 (2 dobivamo na sljedeći način: 1011001 (2 = 1 2 6 + 0 2 5 + 1 2 4 + 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 = 89 (10 Primjer 4.5 Odredite zapis dekadskog broja 123 u oktalnom sustavu i provjerite rezultat. Rješenje: U ovom slučaju broj dijelimo s 8. Dobivene rezultate ćemo prikazati u tablici: Broj Kvocijent nakon Ostatak dijeljenja s 8 dijeljenja 123 15 3 15 1 7 1 0 1 Čitajući posljednji stupac od dolje prema gore, dobivamo da je binarni zapis broja 123 dan sa 173 (8

Računske operacije u binarnom,... 29 Provjerimo rezultat: 173 (8 = 1 8 2 + 7 8 + 3 8 0 = 123 (10. 4.4 Računske operacije u binarnom, oktalnom i heksadecimalnom sustavu U ovom ćemo poglavlju proučavati zbrajanje i oduzimanje brojeva danih u raznim brojevnim sustavima (kao što smo već napomenuli, računalo množenje i dijeljenje izvodi kao niz uzastopnih zbrajanja, odnosno, oduzimanja). Kao što ćemo vidjeti, operacije zbrajanja i oduzimanja u binarnom, oktalnom i heksadecimalnom sustavu izvode se analogno kao i u dekadskom pri čemu vrijede i ista svojstva (komutativnost, asocijativnost,... ) 4.4.1 Zbrajanje i oduzimanje u binarnom sustavu Kao što smo već napomenili, zbrajanje u binarnom sustavu ima jednaka svojstva kao i u dekadskom, a osnovna razlika je u tome da rezultat zbrajanja prikazujemo pomoću dvije znamenke (0, 1). Sljedeća tablica prikazuje nekoliko jednostavnih zbrojeva binarnih brojeva. Primjetite da, ako brojevi koje zbrajamo imaju dvije ili više znamenaka, za zbroj 1 + 1 ćemo pisati 0 i prenijeti (pamtiti) 1, jer smo ispunili bazu (1 + 1 = 2). Primjerice, u dekadskom sustavu to odgovara zbroju 2 + 8. 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Primjer 4.6 Izračunajte zbroj dvaju binarnih brojeva 101110 i 110101. Rješenje:

30 Osnovne operacije na računalu 1 0 1 1 1 0 + 1 1 0 1 0 1 1 0 plus 1 je 1 1 0 1 1 1 0 + 1 1 0 1 0 1 1 1 1 plus 0 je 1 1 0 1 1 1 0 + 1 1 0 1 0 1 0 1 1 1 plus 1 je 0 i 1 prenosimo 1 0 1 1 1 0 + 1 1 0 1 0 1 0 0 1 1 1 plus 0 je 1 i plus 1 (koji smo prenijeli) je 0; a 1 prenosimo 1 0 1 1 1 0 + 1 1 0 1 0 1 0 0 0 1 1 0 plus 1 je 1 i plus 1 (koji smo prenijeli) je 0; a 1 prenosimo 1 0 1 1 1 0 + 1 1 0 1 0 1 1 1 0 0 0 1 1 1 plus 1 je 0 i plus 1 (koji smo prenijeli) je 1; i 1 prenosimo Primjetite da smo u posljednjem redu trebali prenijeti jednu 1-cu, ali to smo zbog jednostavnosti uradili u istom redu, tako je dodatna jedinica stavljena ispred do tada dobivenog rezultata 1 100011. Oduzimanje se takoder izvodi analogno kao i u dekadskom sustavu, samo što u slučaju kada oduzimamo veću znamenku od manje, umjesto posudivanja desetke, mi ovdje posudujemo 2. Primjer 4.7 Izračunajte razliku binarnih brojeva 1001 i 11.

Računske operacije u binarnom,... 31 1 0 0 1 1 1 0 1 minus 1 je 0 1 0 0 1 1 1 1 0 0 je manja od 1 pa moramo posuditi 2, tako da je 0 plus 2 jedanko 2 pa 2 manje 1 jednako 1 i pišemo 1 1 1 0 0 1 1 1 1 1 0 0 koju promatramo postaje 1 jer smo u gornjem redu posudili 2 i oduzeli 1 pa je ukupno ostalo 1, tako da je 1 minus 0 jednako 1 i pišemo 1. I dalje imamo posudeno 1 0 1 0 0 1 1 1 0 1 1 0 posljednja znamenka 1 se poništava jer smo ju već ranije posudili, tako da pišemo 0 4.4.2 Zbrajanje i oduzimanje u heksadecimalnom sustavu Kao što smo vidjeli u prethodnom poglavlju, kod računanja u binarnom sustavu, zbog velikog broja nula i jedinica, lako se može doći do zabune. Zato je jednostavnije takve računske operacije izvoditi u heksadecimalnom sustavu, a onda ih pretvoriti u binarni (ako nam je potreban binarni oblik rezultata). Operacije u heksadecimalnom sustavu se izvode potpuno analogno kao i u dekadskom, samo treba imati na umu da smo u sustavu s bazom 16, tako da kada posudujemo jedan, to znači da smo posudili 16 (a ne 10 kao u dekadskom sustavu). Primjer 4.8 Izračunajte zbroj brojeva u heksadecimalnoj bazi 1A23 i 7C28.

32 Osnovne operacije na računalu 1 A 2 3 + 7 C 2 8 B 3 plus 8 je 11, a znamenka za 11 je B 1 A 2 3 + 7 C 2 8 4 B 2 plus 2 je 4, a oznaka za 4 je 4 1 A 2 3 + 7 C 2 8 6 4 B računajući u dekadskom sustavu: A=10 plus C=12 što daje 22, a 22 u heksadecimalnom zapisu je 16 (1 16 + 6), zato pišemo 6 i jedan prenosimo 1 A 2 3 + 7 C 2 8 9 6 4 B 1 + 7 su 8 i plus 1 koji smo prenijeli je 9 zato pišemo 9 Primjer 4.9 Izračunajte razliku brojeva danih u heksadecimalnoj bazi 1F00A i B2.

Računske operacije u binarnom,... 33 1 F 0 0 A B 2 1 F 0 0 A F B 2 8 10 minus 2 je 8, a znamenka za 8 je 8 5 8 0 je manja od 11, zato moramo posuditi 16 1 F 0 0 A E B 2 pa imamo 16 minus 11 je 5, zato pišemo 5 F 5 8 Promatrana 0 postaje F, jer smo bazu (16) umanjili za 1 1 F 0 0 A B 2 koji smo posudili, a 15 minus 0 je 15, zato pišemo F i opet smo posudili 1 (nismo mogli oduzeti 1 od 0) i dalje ostaje 1 posudeno E F, 5 8 F minus 1 (koji smo prenijeli) je E, (15 minus 1 je 14), 1 F 0 0 A B 2 zato pišemo E 1 E F 5 8 1 minus 0 je 1, pa pišemo 1 Zadatak 4.1 Odredite binarne ekvivalente slijedećih dekadskih brojeva: 43, 77, 115, 331, 1010. Provjerite rezultat ponovnom pretvorbom u dekadski sustav. Zadatak 4.2 Odredite dekadske ekvivalente slijedećih binarnih brojeva: 1001, 101001, 11001101, 1110011, 10010110. Provjerite rezultat ponovnom pretvorbom u binarni sustav. Zadatak 4.3 Koja je vrijednost svake znamenke binarnog broja 11010001 (2? Kako glasi decimalni zapis tog broja?

34 Osnovne operacije na računalu Zadatak 4.4 Odredite oktalni zapis slijedećih dekadskih brojeva: 126, 377, 485, 641. Provjerite rezultat ponovnom pretvorbom u dekadski sustav. Zadatak 4.5 Odredite dekadski ekvivalent oktalnih brojeva 147 i 555. Zadatak 4.6 Pretvorite brojeve 5049 i 260137 iz dekadskog zapisa u heksadecimalni. Zadatak 4.7 Brojeve 1AC7 i DCEF9 prebacite iz heksadecimalnog u dekadski brojevni sustav. Zadatak 4.8 Načinite slijedeće pretvorbe: a) 711 (8 =? (16 b) AC1 (16 =? (8 c) 10101011 (2 =? (8 (=? (16 ) d) ABC23 (16 =? (2 (=? (8 ) Zadatak 4.9 Izvedite slijedeće aritmetičke operacije: a) 11011101 (2 + 10101001 (2 b) 11100010 (2 10000111 (2 c) 267E2 (16 + 4C10B (16 d) 1F 00A (16 B21 (16 e) 17 (8 + 376 (8 f) 255 (8 66 (8. Zadatak 4.10 Izračunajte slijedeću razliku: 12A3E (16 234 (8 11001101 (2. Rezultat izrazite u binarnom i dekadskom brojevnom sustavu.

Poglavlje 5 Pohranjivanje brojeva u računalu U poglavlju 4.2 smo napomenuli da u ovisnosti o kontekstu računalo niz nula i jedinica prepoznaje kao neku od operaciju, kao broj ili slovo, ili neki drugi podatak. To naravno vrijedi i za numeričke podatke, ali problem koji se može pojaviti jest je li rezulat neke računske operacije (npr. oduzimanja) pozitivan ili negativan broj i kako to računalo može znati. Odgovor na to pitanje ovisi o konvenciji koju koristimo pri zapisivanju brojeva. U ovom poglavlju ćemo proučavati dvije takve konvencije: konvenciju predznaka i konvenciju dvostrukog komplementa. 5.1 Konvencija predznaka Pretpostavimo da za spremanje cijelih brojeva koristimo n mjesta (odnosno n bitova). U konvenciji predznaka krajnji lijevi bit koristimo isključivo za predznak, a ostalih n 1 bitova za apsolutnu vrijednost (iznos) broja. Primjetite da se u ovoj konvenciji u riječ duljine n bitova mogu zapisati brojevi od (2 n 1 1) do +(2 n 1 1). Slika 5.1: Prikaz broja pomoću bytea 35

36 Pohranjivanje brojeva u računalu U ovoj konvenciji 0 na mjestu b n 1 predstavlja predznak +, a 1 na mjestu b n 1 predstavlja predznak (vidi sliku 5.1). Primjer 5.1 Broj 41 u binarnom zapisu je dan s 41 (10 = 0101001 (2. U konvenciji predznaka taj broj ima zapis 41 (10 = 00101001 (2, dok se broj 41 zapisuje kao 41 (10 = 10101001 (2. Primjetite da smo 41 zapisali sa 7 znakova (bitova), a da je u konvenciji predznaka dodan još jedan bit za predznak (ukupno imamo 8 bit-ni zapis). Problem koji se može pojaviti jest, što ako za rezultat neke računske operacije dobijemo broj koji je izvan intervala [ 2 n 1 1, +2 n 1 1 ]. Tada kažemo da je nastupio (ili da je došlo do) prekoračenja (overflowa). Primjer 5.2 Odredite decimalnu vrijednost zbroja brojeva 10100011 i 00010110 ako su dani konvencijom predznaka i ako je osnavna jedinica byte. broj: 10100011 broj: 00010110 predznak: 1 (negativan) 0 (pozitivan) Apsolutna vrijednost 1 2 5 + 1 2 1 + 1 2 0 1 2 4 + 1 2 2 + 1 2 1 Decimalna vrijednost: (32 + 2 + 1) = 35 +(16 + 4 + 2) = +22 5.2 Konvencija dvostrukog komplementa Zbog svoje jednostavnosti, ova je konvencija najpopularnija medu proizvodačima računala diljem svijeta. U konvenciji dvostrukog komplementa pozitivne brojeve zapisujemo na jednak način kao i kod konvencije predznaka, a za negativne brojeve koristimo sljedeću proceduru (u 3 koraka): 1. Korak: Izrazimo apsolutnu vrijednost promatranog broja binarno 2. Korak : Promjenimo sve nule u jedinice i sve jedinice u nule (0 1 i 1 0); ovu proceduru zovamo komplementiranje bitova. 3. Korak : Dodamo 1 broju dobivenom u koraku 2. Ako nam konvencije predznaka da negativni, njemu pridruženi pozitivni broj dobivamo provodeći korake 2. i 3. iz gornje procedure. Primjer 5.3 Kako glasi reprezentacija broja 31 u konvenciji dvostrukog komplementa? Rješenje: 1. Korak: Apsolutna vrijednost broja je 31, tj. 31 (10 = 00011111 (2.

Aritmetičke operacije u konvenciji dvostrukog komplementa 37 2. Korak: Promjenimo 0 1 i 1 0, dobivamo 11100000 (2. 3. Korak: Broju iz koraka 2. dodajemo 1, tj. 11100000 + 1 11100001 Tražena reprezentacija broja 31 glasi 11100001. Primjetite da je predznak dobivenog broja 1 što odgovara. U konvenciji dvostrukog komplementa, u riječ duljine n bitova možemo zapisati brojeve od (2 n 1 ) do +(2 n 1 1). Primjetite da se u ovoj konvenciji mogu zapisati manji negativni brojevi nego u konvenciji predznaka (veći po apsolutnoj vrijednosti). Primjer 5.4 Kolika je pozitivna vrijednost pridruženog broja u dekadskom sustavu broju koji u konvenciji predznaka ima oblik 11100100? Rješenje: Budući da ovaj broj na prvom mjestu ima 1, znači da je negativan pa provodimo 2. i 3. korak gornje procedure. 2. Korak: Promjenimo 0 1 i 1 0, tj. mijenjamo 11100100 u 00011011. 3. Korak: Broju iz koraka 2. dodajemo 1, tj. 00011011 + 1 00011100 Dakle, traženi broj ima oblik 00011100, dekadska vrijednost mu je 28. 5.3 Aritmetičke operacije u konvenciji dvostrukog komplementa Zakon zbrajanja: Brojeve zbrajamo tako da ih tretiramo kao brojeve bez predznaka, tj. najznačajniji bit (lijevi bit), odnosno, bit s predznakom smatramo da je dio broja. Ako nakon zbrajanja ostane dio koji bi trebali prenijeti (1), nakon lijevog bita, to zanemarujemo.

38 Pohranjivanje brojeva u računalu Zakon oduzimanja: Brojeve oduzimamo takoder smatrajući ih brojevima bez predznaka, tj. najznačajniji bit (lijevi bit), odnosno, bit s predznakom smatramo da je dio broja. Ako nam za oduzimanje treba 1 iza lijevog bita, to posudimo i nakon operacije oduzimanja tu jedinicu zanemarujemo. Primjer 5.5 Zbrojite brojeve 11000111 i 11011101 koji su dani u konvenciji dvostrukog komplementa. 11000111 + 11011101 0 1 i 1 su 10 pa pišemo 0 i 0 i 1 pamtimo (prenosimo) 11000111 + 11011101 00 1 i 0 su 1 plus ono što smo zapamtili je 10, pa pišemo 0 i 1 prenosimo 11000111 + 11011101 100 1 i 1 su 10 plus 1 koji smo prenijeli je 11, pa pišemo 1 i 1 prenosimo 11000111 + 11011101 0100 0 i 1 su 1 plus ono što pamtimo je 10, pa pišemo 0 i 1 prenosimo 11000111 + 11011101 00100 0 i 1 su 0 plus ono što pamtimo je 10, pa pišemo 0 i 1 prenosimo 11000111 + 11011101 100100 0 i 0 su 0 plus ono što pamtimo je 1, pa pišemo 1 i ništa ne prenosimo 11000111 + 11011101 0100100 1 i 1 su 10 pa pišemo 0 i 1 prenosimo 11000111 + 11011101 10100100 1 i 1 su 10 plus ono što smo prenijeli je 11, pa pišemo 1 i zanemarujemo ono što treba prenijeti Primjetimo: Dekadski zapis dobivenog broja iznosi 92, što je upravo vrijednost zbroja brojeva 11000111 (2 = 57 (10 i 11011101 (2 = 35 (10.

Binarni i alfanumerički kodovi 39 Primjer 5.6 Odredite rezultat oduzimanja broja 11011101 od broja 00111001, ako su brojevi dani u konvenciji dvostrukog komplementa. 00111001 11011101 0 1 minus 1 su 0 pa pišemo 0 00111001 11011101 00 0 minus 0 su 0 pa pišemo 0 00111001 11011101 100 0 je manje od 1, pa posudujemo 2 od gornjeg broja. 2 minus 1 su 1 pa pišemo 1 00111001 11011101 1100 1 je dobivena tako da smo uzimajući u obzir, posudenu 1-cu, umjesto 1 dobili 0, a kako je 0 manja od 1 moramo ponovno posuditi 2 u gornjem broju tako da imamo 2 minus 1 je 1 i pišemo 1 00111001 11011101 11100 ova nova 1-ca je dobivena potpuno analogno kao u gornjem slučaju, tako da i dalje imamo posudeno 2 00111001 11011101 011100 budući da smo posudili 2, to gornja jedinica postaje 0 pa imamo 0 minus 0 je 0 i pišemo 0. 00111001 11011101 1011100 0 je manje od 1, pa posudujemo 2 od gornjeg broja. 2 minus 1 su 1 pa pišemo 1 00111001 11011101 01011100 0 postaje 1, pa kako je 1 minus 1 jednako 0 pišemo 0. 5.4 Binarni i alfanumerički kodovi Kao što je ljudima puno jednostavnije da u svakodnevnom životu upotrebljavaju brojeve iz dekadskog brojevnog sustava nego nizove 0 i 1-ca (brojeve iz binarnog sustava), tako je računalima upravo obratno, tj. njima je potpuno prirodno (jednostavnije) raditi s nizovima 0 i 1-ca.

40 Pohranjivanje brojeva u računalu U svrhu rješavanja tog problema razvijeno je nekoliko vrsta dogovora koji će biti prepostavka za uspješno komuniciranje izmedu ljudi i računala. To su dogovori o skupu znakova koji će se u radu s računalom koristiti, te o pripadnim binarnim kombinacijama za svaki od znakova i zadacima koji se za svakog moraju izvršiti. Dogovori se vremenom proširuju i dograduju, pri čemu su neki od njih ozakonjeni standard države ili preporuka neke medunarodne organizacije. Skup svih znakova koji se tako koriste naziva se apstraktna abeceda, koja zajedno s pripadnim binarnim (ili nekim drugim) kombinacijama tvori kod. Pojedini znakovi u kodu nazivaju se kodni elementi, a pripadni im se zamjenjitelj, bilo da je u pitanju binarna kombinacija, neki drugi znak ili nešto treće, naziva kodna zamjena. Mi ćemo spomenuti neke težinske kodove (BCD npr.) i jedan alfanumerički kod (ASCII). 5.4.1 Težinski kodovi Broj kodnih elemenata u apstraktnoj abecedi naziva se obim koda. Medu popularnije 4 bitne kodove spadaju tzv. težinski kodovi. U takvoj reprezentaciji svaki od 4 bita, pomoću kojih zapisujemo dekadski broj N, ima svoju težinu tj. N = w 1 b 1 + w 2 b 2 + w 3 b 3 + w 4 b 4 gdje su b i, i = 1,... 4 bitovi, a w i, i = 1,... 4 težine. Niz binarnih znamenaka koji predstavljaju dekadski broj N zovemo kodna riječ. Jedan od najpoznatijih 4 bitnih kodova je BCD ((Binary-Coded-Decimal), u prijevodu binarno kodirana dekada). BCD je težinski kod s težinama 8-4-2-1 što odgovara reprezentaciji decimalnog broja u binarnom obliku. Sljedeća tablica sadrži prikaz dekadskih znamenki u različitim kodovima BCD (8-4-2-1), 8-2-4-1 i 2-4-1-2 kodu. Primjer 5.7 Prikažite dekadski broj 9 u 2 4 2 1, odnosno, u 8 4 2 1 težinskom kodu. 1 2 + 1 4 + 1 2 + 1 1 = 9 (10, 1 8 + 0 4 + 0 2 + 1 1 = 9 (10. Stoga je reprezentacija broja 9 u 2 4 2 1 dana s 1111, dok je u 8 4 2 1 kodu dana s 1001. Primjetite: Zapis broja u danom kodu ne mora biti jedinstven: 1 2 + 1 4 + 0 2 + 0 1 = 6 (10, 0 2 + 1 4 + 1 2 + 0 1 = 6 (10, Prirodno se nameću sljedeća pitanja: 1. Kako računalo zna koji kod koristimo? 2. Može li se istovremeno koristiti više različithih kodova?