Dodatak A Matematička logika i kodiranje podataka

Σχετικά έγγραφα
3.1 Granična vrednost funkcije u tački

(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

Operacije s matricama

Teorijske osnove informatike 1

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

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

TRIGONOMETRIJSKE FUNKCIJE I I.1.

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

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

7 Algebarske jednadžbe

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

1 Promjena baze vektora

Riješeni zadaci: Limes funkcije. Neprekidnost

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

radni nerecenzirani materijal za predavanja

Linearna algebra 2 prvi kolokvij,

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

ELEKTROTEHNIČKI ODJEL

numeričkih deskriptivnih mera.

Riješeni zadaci: Nizovi realnih brojeva

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

18. listopada listopada / 13

Mijenja vrijednost izjave: iz istine u laž, iz laži u istinu. Negacija izjave nova je izjava.

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

Uvod u teoriju brojeva

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

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

Linearna algebra 2 prvi kolokvij,

Funkcije dviju varjabli (zadaci za vježbu)

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

Iskazna logika 1. Matematička logika. Department of Mathematics and Informatics, Faculty of Science, University of Novi Sad, Serbia.

RIJEŠENI ZADACI I TEORIJA IZ

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

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

Diskretna matematika. Prof. dr Olivera Nikolić

Kaskadna kompenzacija SAU

Matematička analiza 1 dodatni zadaci

Elementi spektralne teorije matrica

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.

PRIMJER 3. MATLAB filtdemo

1 Aksiomatska definicija skupa realnih brojeva

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

Prikaz sustava u prostoru stanja

Dijagonalizacija operatora

ν nu ξ xi π pi σ, ς sigma τ tau υ upsilon φ, ϕ phi ψ psi ω omega

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

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

Otpornost R u kolu naizmjenične struje

Osnovne teoreme diferencijalnog računa

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

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

1.4 Tangenta i normala

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

INTELIGENTNO UPRAVLJANJE

41. Jednačine koje se svode na kvadratne

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Reprezentacija brojeva u

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

Računarska grafika. Rasterizacija linije

III VEŽBA: FURIJEOVI REDOVI

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

Matematička logika i principi programiranja zadaci iz oktobarskog roka Rezultate prikazati u dekadnom i heksadecimalnom sistemu.

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

Program za tablično računanje Microsoft Excel

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

IZVODI ZADACI (I deo)

2.2 Srednje vrijednosti. aritmetička sredina, medijan, mod. Podaci (realizacije varijable X): x 1,x 2,...,x n (1)

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

( , 2. kolokvij)

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

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:

Matematička logika. novembar 2012

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,

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

Signali i sustavi - Zadaci za vježbu II. tjedan

Funkcija gustoće neprekidne slučajne varijable ima dva bitna svojstva: 1. Nenegativnost: f(x) 0, x R, 2. Normiranost: f(x)dx = 1.

- pravac n je zadan s točkom T(2,0) i koeficijentom smjera k=2. (30 bodova)

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

ZNANSTVENI KALKULATOR UPUTSTVO ZA UPOTREBU

M086 LA 1 M106 GRP Tema: Uvod. Operacije s vektorima.

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

Zadaci iz trigonometrije za seminar

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.

Više dokaza jedne poznate trigonometrijske nejednakosti u trokutu

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

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

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

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

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović

Zavrxni ispit iz Matematiqke analize 1

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

Obrada signala

6 Polinomi Funkcija p : R R zadana formulom

TOLERANCIJE I DOSJEDI

SISTEMI NELINEARNIH JEDNAČINA

IZRAČUNAVANJE KONAČNIH SUMA METODIMA DIFERENTNOG RAČUNA

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

1. Skup kompleksnih brojeva

Četrnaesto predavanje iz Teorije skupova

Transcript:

Dodatak Matematička logika i kodiranje podataka.1 Matematička i digitalna logika it će navedeni osnovni pojmovi matematičke logike potrebni za razumijevanje računa izjava (ili algebre sudova), koji se intenzivno koristi u programiranju, i digitalne logike koja je temelj hardverskog ustrojstva digitalnog računala. Osnovni objekt kojeg proučava račun izjava je elementarna izjava. Elementarna izjava može imati samo jedno svojstvo - njome se izriče: "laž" ili "istina". Naprimjer, izjava "osam je veće od sedam" je istinita, a izjava "broj sto je djeljiv sa sedam" je laž. Pri označavanju izjava koristit će se slovo T (true) za istinitu izjavu i F (false) za lažnu izjavu. Rečenica "broj x je veći od broja y" ne predstavlja izjavu jer njena istinitost ovisi o veličini brojeva x i y. ko se umjesto x i y uvrste brojevi dobije se izjava. Ovakove rečenice se nazivaju izjavne funkcije, za x i y se kaže da su (predmetne) varijable, a odnos među njima kojeg izjavna funkcija izriče da je predikat. Označi li se u prethodnom primjeru predikat "... je veći od... " sa P, navedena izjavna funkcija se može zapisati u obliku P(x,y). U tom slučaju imamo dvomjesni predikat, jer se izražava odnos dviju varijabli; općenitije predikat može biti n-mjesni. Izjavne funkcije se prevode u izjave kada se uvrsti vrijednost predmetnih varijabli ili ako se uz izjavne funkcije primijene neodređene zamjenice svaki (oznaka koja se naziva univerzalni kvantifikator) ili neki (oznaka koja se naziva egzistencijalni kvantifikator). x se čita i "postoji x". Naprimjer, prethodna izjavna funkcija primjenom kvantifikatora u predikatskom izrazu ( y)( x)p(x,y) postaje izjava koja znači: "za svaki broj y postoji broj x takav da je x veći od y". Rezultat izjavne funkcije je logička vrijednost T ili F, i kada se pridijeli nekoj varijabli takova varijabla se naziva logička varijabla. U programiranju se često koriste izjavne funkcije iskazane tzv. relacijskim izrazima. Naprimjer, a (x<z) označava da se logičkoj varijabli a pridjeljuje logička vrijednost određena izjavnom funkcijom (x<z). Kada je x manje od z logička varijabla poprima logičku vrijednost T inače je F. Standardno se koriste relacijski operatori: < (veće), > (manje), (različito ili nije jednako), (veće ili jednako), (manje ili jednako). Više izjava može formirati složenu izjavu. Konjukcija a&b (ili a b) dviju izjava a i b je je složena izjava, nastala povezivanjem izjava a i b veznikom i za kojeg se upotrebljava simbol ili &. Složena izjava je istinita samo ako su obje izjave istinite. Izjava a & b čita se "a i b" ili "a et b". Disjunkcija a b je složena izjava, koja je lažna onda i samo onda kada su obje izjave lažne; a b čita se "a ili b" ili " a vel b" Implikacija a b je složena izjava koja je lažna onda i samo onda ako je a istinito i b lažno; čita se " a povlači b" ili " a implicira b". Za izjavu b a kažemo da je obrat izjave a b. Vrijedi i sljedeće tumačenje implikacije: ako je izjava a b istinita onda je a dovoljan uvjet za b, ili: b je nuždan uvjet za a.

Ekvivalencija a b je složena izjava koja je istinita onda i samo onda kada su obje izjave istinite, ili kada su obje lažne: čita se " a je ekvivalentno sa b". Negacija a je izjava koja je istinita onda i samo onda kada je izjava a lažna. Usvoji li se da a i b predstavljaju logičke varijable, tada simboli:,&,, i predstavljaju logičke operatore. Njihovo se djelovanje može opisati tzv. tablicom istinitosti: a b a a & b a b a b a b T T F T T T T T F F F T F F F T T F T T F F F T F F T T Tablica.1. Tablica istinitosti logičkih operacija Upotrebom navedenih logičkih operatora i uvođenjem zagrada mogu se, kao i u algebri, graditi razni logički izrazi. Naprimjer: (a b) c a (c & d). Redosljed izvršavanja operacija je sljedeći: (1) izraz u zagradi, (2) negacija, (3) disjunkcija, (4) konjukcija, (5) implikacija i ekvivalencija. Logički izrazi koji sadrže samo operacije negacije, konjukcije i disjunkcije, te zagrade, određuju ooleovu algebru. Logički izrazi koji sadrže operatore implikacije i ekvivalencije mogu se izraziti pomoću ooleovih izraza. Vrijedi: x y = x y x y = (( x & y) ( y & x)) što se potvrđuje iz tablice istinitosti. U ooleovoj algebri vrijede slijedeće zakonitosti: 1. Zakon komutacije x y y x x & y y & x 2. Zakon asocijacije x (y z) (x y) z x & (y & z) (x & y) & z 3. Zakon idempotentnosti x x x x & x x 4. Zakon distribucije x (y & z) (x y) & (x z) x & (y z) (x & y) (x & z) 5. De Morganov zakon (x y) x & y (x & y) x z 6. Zakon dvostruke negacije x x Primjeri primjene ovih zakona pri programiranju bit će dani u kasnijim poglavljima. ooleova logika ima veliku primjenu u programiranju i posebno pri projektiranju sklopova digitalnog računala, jer se gotovo svi potrebni sklopovi digitalnog računala mogu realizirati pomoću tri temeljna elektronička sklopa - invertor, Sklop-I (ND Gate) i Sklop-ILI (OR Gate). Dodatak. Logika i kodiranje -2

Invertor Sklop - I & Sklop - ILI Slika.1. Temeljni digitalni sklopovi Ovi se sklopovi upravljaju naponom (ili strujom) tako da reagiraju na stanje pod naponom i stanje bez napona, dakle oni raspoznaju samo dvije naponske razine: nisku i visoku. Uobičajeno se ta dva stanja označavaju s "1" i "" umjesto s true i false. To su sklopovi kojima izlaz odgovara operacijama negacije, disjunkcije i konjukcije ulaznih logičkih stanja "" i "1". Funkcija ovih sklopova se može prikazati pomoću preklopki. Naprimjer, rad sklopa I se može opisati strujnim krugom u kojem su serijski spojene žarulja, sklopka i sklopka. Žarulja će zasvijetliti kada proteče struja, a to je moguće samo ako ako su obje sklopke uključene, odnosno izlaz je 1 samo ako su varijable i jednake 1. Kod sklopa ILI dovoljno je uključiti jednu sklopku da bi zasvijetlila žarulja. Očito sklop I obavlja logičku funkciju konjukcije, a sklop ILI obavlja logičku funkciju disjunkcije. U digitalnom se računalu pomoću navedenih sklopova obrađuje i prenosi mnoštvo digitalnih signala. Pošto je uvedeno označavanje stanja digitalnog signala znamenkama i 1 može se reći da se digitalnim signalom prenosi poruka o vrijednosti binarne znamenke koja u jednom trenutku može imati iznos nula ili jedinica. Iz tog se razloga umjesto pojma ooleova algebra ili matematička logika često koristi pojam digitalna logika. U digitalnoj je tehnici uobičajena primjena logičkih operatora na nizove bitova. Tada se podrazumijeva da se logičke operacije provode nad bitovima jednake značajnosti. Takove logičke operacije se nazivaju bit-značajne operacije. Naprimjer, bit značajnom konjukcijom (bit-wise ND) dva binarna niza i dobije se niz C: 7 6 5 4 3 2 1 bit ----------------------- 1 1 1 1 1 1 = 1 = ---------------------- & = 1 = C Uočimo da u nizu C jedino bit 2 može biti jednak 1 i to samo ako je i u nizu prvi bit jednak 1. Ovo je često korišten postupak da se ispita da li je neki bit u nizu jednak 1 ili. Obično se niz naziva "maska" za ispitivanje bitova u nizu. Pored prije navedenih ooleovih logičkih operatora (N, ND I OR) u programiranju i u digitalnoj se tehnici često koriste bit-značajna operacija koja se naziva ekskluzivna disjunkcija ili ekskluzivno ILI. Ekskluzivna disjunkcija se označava znakom ili XOR. Njen značaj u programiranju bit će pojašnjen kasnije. XOR = = ( & ) ( & ) XOR Dodatak. Logika i kodiranje -3

1 1 1 1 1 1 = ( & ) ( & ) Slika.2 Definicijska tablica ekskluzivne disjunkcije i simbol digitalnog XOR-sklopa.2 rojevni sustavi i računska sposobnost računala Zanima nas na koji način se u digitalnom računalu vrše aritmetičke računske operacije. U programskim jezicima operacije s brojevima se najčešće zapisuju u decimalnom brojevnom sustavu, jer je čovjek naviknut na rad s decimalnim brojevima. U računalu se pak računske operacije vrše u binarnom brojevnom sustavu..2.1 inarni brojevni sustav Sasvim općenito, numerička vrijednost broja Z, koji je u pozicionoj notaciji zapisan znamenkama: z n--1...z 1 z, u brojevnom sustavu baze x, računa se prema izrazu: (... ) n 1 Z = z z z = z x n 1 1 x i i= i Decimalni brojevni sustav je definiran bazom x=1 i znamenkama z i ε{,1,2,3,4,5,6,7,8,9}. Primjerice iznos broja 765 je jednak 7 1 2 + 6 1 1 + 5 1. inarni brojevni sustav je definiran bazom x=2 i binarnim znamenkama z i {,1}.Primjerice, iznos binarnog broja 111 odgovara iznosu broja 11 u decimalnom sustavu, jer je (111) 2 = 1 2 3 + 2 2 + 1 2 1 +1 2 = 8 + + 2 + 1 = (11) 1. Općenito vrijedi da se s binarnim nizom od n bita može kodirati pozitivni cijeli broj maksimalnog iznosa 2 n -1, što odgovara broju različitih kombinacija binarnog niza duljine n umanjenom za jedan (i nula je broj!). Napomenimo da se za pozitivne cijele brojeve koriste i nazivi kardinalni brojevi i nepredznačeni cijeli brojevi. U binarnom brojevnom sustavu se mogu izvoditi osnovne računske operacije kao i u decimalnom brojevnom sustavu. inarno zbrajanje se obavlja kao i decimalno zbrajanje, osim što se prijenos na slijedeće značajnije mjesto ne obavlja nakon postignutog zbroja 1, već nakon 2 (1+1). Primjer: 1 1 prijenos 1 1 = 5 1 1 1 1 = 7 1 + 1 = 2 1 + 1 1 = 5 1 ----------------- ---------------------- 1 1 1 = 7 1 1 1 = 12 1 Ukoliko se zbrajanje izvodi bez prijenosa ta operacija se naziva zbrajanje po modulu 2, a u logičkom smislu ta operacija je ekvivalentna ekskluzivnoj disjunkciji (XOR), stoga se za tu operaciju često koristi naziv "zbrajanje po modulu 2". Operaciju zbrajanja LS bitova može se prikazati tablicom istine: zbroj = prijenos = & 1 1 Dodatak. Logika i kodiranje -4

1 1 1 1 1 Digitalni sklop koji realizira ovu funciju naziva se poluzbrajalo (half adder) i prikazan je na slici.3(a). Pri zbrajanju ostalih bitove treba pribrojiti i bit donosa, pa vrijedi tablica istinitosti: donos zbroj prijenos 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Digitalni sklop koji realizira ovu funkciju naziva se potpuno zbrajalo i prikazan je na slici.3(b). donos suma suma prijenos prijenos a) poluzbrajalo b) potpuno zbrajalo Slika.3. Sklopovska izvedba 1-bitnog zbrajala Očito je da se upotrebom više ovakovih sklopova može "izračunati" zbroj dva binarna niza, na način da se "prijenos" s zbrajala bitova manjeg značaja prenosi kao "donos" u zbrajalo bitova većeg značaja. Operacija ekskluzivne disjunkcije (XOR) se često koristi u bit-značajnim operacijama pri šifriranju i u programima s bit-mapiranim grafičkim algoritmima. Interesantno svojstvo ove operacije je da ako se na neki binarni niz dva puta uzastopno primjeni bit-značajna ekskluzivna disjunkcija s nizom rezultatni niz je jednak nizu. Primjerice, neka je niz = 11, a niz =11. Tada je: = 11 ( ) = 11 = Dakle, prvo djelovanje je šifriranje, a drugo djelovanje je dešifriranje originalnog niza. inarno oduzimanje se također može izvesti slično pravilima decimalmog sustava, međutim rezultat oduzimanja mogu biti i negativni brojevi. Kako se kodiraju negativni brojevi bit će pokazano kasnije. Kod binarnog množenja djelomičan umnožak se pomiče za jedno mjesto ulijevo pri svakom uzimanju idućeg množitelja. ko je množitelj, djelomični umnožak je, a ako je množitelj 1, djelomični umnožak jednak je množeniku. Naprimjer: 5 x 5 = 25 5 x 1 = 5 11 (5) 11 (5) 11 (5) 11 (1) ------------ --------------- Dodatak. Logika i kodiranje -5

11 11 11 ------------ 11 111 (25) ---------------- 111 (5) inarno dijeljenje se u računalu izvodi primjenom binarnog množenja i oduzimanja, na isti način kao i kod decimalnih brojeva. Navedene operacije su ugrađene u skup naredbi većine današnjih procesora. Potrebno je napomenuti još dvije operacije koje se u računalu mogu izvoditi s nizovima bitova. To su operacije logičkog posmaka bitova u lijevo ili u desno (podrazumijeva se LS na desnoj strani niza), a označavaju se s SHL (shift left) i SHR (shift right). Posmak od jednog mjesta u lijevo odgovara množnju kardinalnih brojeva s 2, a posmak bitova jedno mjesto udesno odgovara dijeljenju kardinalnih brojeva s 2. Na prazna mjesta se postavljaju nule. Primjer: (11) SHL 1 = (11) odgovara 3 * 2 = 6 (11) SHL 2 = (11) odgovara 3 * 4 = 12 (111) SHR 1 = (111) odgovara 14 / 2 = 7.2.2 Oktalni i heksadecimalni brojevni sustavi U programskim se jezicima se rijetko koristi zapis broja u binarnom obliku jer čovjek teško pamti veće nizove "nula i jedinica". Čovjek je naviknut na decimalni sustav, međutim, kada se želi znati binarna struktura kodiranja, onda se ona teško može sagledati iz decimalnog zapisa. Da bi se to omogućilo koristi se literalno označavanje u oktalnom ili heksadecimalnom brojevnom sustavu. U oktalnom brojevnom sustavu koristi se 8 znamenki: 1234567, a baza brojevnog sustava iznosi x=2 3 =8. Oktalnim brojem jednostavno se označava niz od 3 bita, jer je s binarnim nizom od 3 bita moguće kodirati 8 znamenki: bit 1 1 1 1 bit 1 1 1 1 1 bit 2 1 1 1 1 ----------------------- 1 2 3 4 5 6 7 znamenke oktalnog brojevnog sustava To omogućuje pregledniji zapis većih binarnih nizova, 111111 2 == 4427 8, a koristi se pravilo grupiranja po 3 bita: 1=4, 1=4, 1=2, 111=7, U heksadecimalnom brojevnom sustavu koristi se 16 znamenki: 123456789CDEF, a baza brojevnog sustava iznosi x=2 4 =16. Za kombinacije od 1 do 15 upotrebljena su prva slova abecede, kojima numerička vrijednost u decimalnom brojevom sustavu iznosi: =1, =11, C=12, D=13, E=14 i F=15. Heksadecimalnim se brojem jednostavno označava niz od 4 bita, jer se binarnim nizom od 4 bita može kodirati 16 znamenki: bit 1 1 1 1 1 1 1 1 bit 1 1 1 1 1 1 1 1 1 bit 2 1 1 1 1 1 1 1 1 bit 3 1 1 1 1 1 1 1 1 --------------------------------------- 1 2 3 4 5 6 7 8 9 C D E F heksadecimalne znamenke To omogućava pregledniji zapis većih binarnih nizova, npr. Dodatak. Logika i kodiranje -6

111111111 2 == 917E 16, a koristi se pravilo grupiranja po 4 bita: 11=9, 1=1, 111=7, 111=E. Zaključimo: Mogućnost da se strojno mogu izvršavati aritmetičke i logičke operacije s binarno kodiranim podacima predstavlja matematički i elektronički temelj računarstva...3 Kodiranje podataka Podaci (data) u računalu se sastoje od binarno kodiranih znakova i binarno kodiranih numeričkih vijednosti. Kodiranje binarnog niza za primjenu u digitalnom računalu je postupak kojim se određenom broju, slovu ili nekom kontrolnom signalu računala pridjeljuje određena kombinacija binarnih znamenki. Znak (character) je element dogovorno usvojenog skupa različitih simbola koji su namijenjeni obradi podataka (slova abecede, numeričke znamenke, znakovi interpunkcije isl.). Niz znakova se često tretira kao cjelina i naziva se string. Primjerice, u C jeziku se string literalno zapisuje kao niz znakova omeđen znakom navodnika ("ovo je literalni zapis C stringa"). Datoteka (file) je skup podataka ili programskog kôda koji se posredstvom računala pohranjuju na medijima za trajno očuvanje informacije: magnetskoj traci, tvrdom disku, disketi ili optičkom disku..3.1 KODIRNJE POZITIVNIH CIJELIH ROJEV - kardinalni brojevi (eng. unsigned integers) Pozitivni cijeli brojevi, ili kardinalni brojevi, su svi prirodni brojevi i nula. Način njihovog kodiranja je opisan u prethodnom poglavlju. U programskim jezicima se oni literalno zapisuju pomoću niza znamenki. Koriste se zapisi u različitim brojevnim sustavima: decimalnom, binarnom, heksadecimalnom i oktalnom..3.2 KODIRNJE CIJELIH ROJEV (eng. integers) Kako opisati broj s predznakom? Većina današnjih procesora za opisivanje cijelih brojeva s predznakom koristi tzv. komplementni brojevni sustav. Puni komplement n-znamenkastog broja N x, u brojevnom sustavu baze x matematički se definira izrazom: N = x N x n x primjerice, u decimalnom sustavu komplement troznamenkastog broja 733 je 1 3-733= 277. ko se n-znamenkasti broj i njegov komplement zbroje vrijedi da će n znamenaka biti jednako nuli. U prijašnjem primjeru 733+277=1, dakle tri znamenke su jednake nuli. U binarnom se sustavu puni komplement naziva komplement dvojke i vrijedi: n 2 2 N = 2 N Komplement dvojke se koristi za označavanje negativnih brojeva. Npr. komplement dvojke broja +1 za n=4 iznosi: N' 2 = 2 4-1 = 1-1 = 1111. Dodatak. Logika i kodiranje -7

ko se broj i njegov komplement zbroje rezultat bi trebao biti nula. To vrijedi jer su prva četiri bita zbroja jednaka nuli. Peti bit je jednak jedinici, ali on se u 4-bitnom sustavu odbacuje. U sustavu komplementa dvojke pozitivni brojevi uvijek imaju MS=, a negativni brojevi imaju MS=1. Razmotrimo što će se desiti ako se zbroje dva pozitivna broja koji imaju bitove ispod MS jednake jedinici., primjerice, zbroj 4+5; 1 +11 ---------- 11 rezultat predstavlja negativan broj u sustavu komplementa dvojke. Do prijelaza u područje komplementa ne bi došlo da je rezultat zbrajanja bio manji od 7, odnosno 2 4-1 -1. Poopćimo li ovo zapažanje na brojeve od n-bita, zaključit ćemo da operacija zbrajanja ima smisla samo ako je zbroj operanada manji od 2 n-1-1. Zbog toga je najveći pozitivni broj koji se može predstaviti u sustavu komplementa dvojke: max_int = (111...111) = 2 n-1-1, a najveći iznos negativnog broja iznosi: min_int = (1...) = -2 n-1. Uočimo da se može opisati, za jedan više negativnih brojeva od pozitivnih brojeva. Obični komplement binarnog broja (naziva se i komplement jedinice) dobije se zamjenom svih jedinica s nulom i obratno. Iznos broja. koji se dobije na ovaj način, računa se prema izrazu: N n 2 2 = 2 N 1 Obični komplement nije pogodan za izražavanje prirodnih brojeva jer nije jednoznačno određena vrijednost nule, naime obični komplement od iznosi 1111. On služi za jednostavno izračunavanje punog komplementa, jer vrijedi: N = N + 2 2 1 Dakle, puni komplement se izračunava tako da se najprije izračuna obični komplement, kojem se zatim pridoda jedinica. Naprimjer, komplement dvojke broja 6 u 8-bitnoj notaciji iznosi: 11 (+6) -------- 111111 (obični komplement od +6) 1 (dodaj 1) -------- 111111 (-6 u komplementu dvojke) Izračunajmo puni komplement od ; () -------- 11111111 (komplement od ) 1 (dodaj 1) -------- 1 (- u komplementu dvojke) Jedinica predstavlja deveti bit. Ona se u 8-bitnom sustavu odbacuje pa rezultat opet predstavlja nulu. Komplement dvojke omogućuje jednoznačno određivanje nule, i to je razlog što za predstavljanje cijelih brojeva, nije izabran obični komplement. Dodatak. Logika i kodiranje -8

.3.3. KODIRNJE RELNIH ROJEV Realni brojevi se u matematici i i višim programskim jezicima zapisuju na način da se cijeli i decimalni dio odvoje decimalnim zarezom (pr. 67,98), a koristi se i ekponentni format (eng. scientific format). Primjerice prethodni se broj može zapisati u obliku,6789 1 2.. U programskom jeziku C koristi se sličan zapis kao u matematici, s razlikom da se umjesto decimalnog zareza koristi "decimalna točka", a potencija broja 1 se označava velikim ili malim slovom E. matematički zapis ekvivalentni zapis u C-jeziku 1,789 1.789,789.789 ili.789-178,9 1-2 -178.9e-2 ili -178.9E-2 -,1789 1 2 -.1789e2 ili -.1789E2 ili -.1789e+2 Tablica.3. Matematički i programski zapis realnih brojeva Eksponentni format se sastoji od dva dijela: mantise i eksponenta eksponentni decimalni format = mantisa 1 eksponent Mantisa se zapisuje kao obični decimalni broj s predznakom, a eksponent se zapisuje kao cijeli broj. Prednost korištenja eksponentnog formata je u lakšem zapisu vrlo velikih i vrlo malih brojeva. Uočimo da se promjenom vrijednosti eksponenta pomiče položaj decimalnog zareza. Kodiranje s fiksnim položajem binarne točke (eng. fixed point numbers) Umjesto pojma decimalnog zareza uvodi se pojam binarne točke. Opći oblik zapisivanja realnog broja s fiksnim položajem binarne točke, u slučaju da se N znamenki koristi za označavanje cijelih vrijednosti, a n znamenki za označavanje razlomljenih vrijednosti (po bazi 2: 1/2, 1/4, 1/8 itd.) glasi: b b... b b b... b, a iznos mu se računa prema izrazu: N 1 N 2 1 2 n N 1 1 N. n2 = bn 12 +... + b 2 + b 1 2 + b 2 2 +... + b n 2, bi ko se ovaj broj pomnoži s 2 n može ga se u operacijama smatrati cijelim brojem, a nakon izvršenih aritmetičkih operacija rezultat se skalira za iznos 2 -n. Ovakovi oblik kodiranja ima brojne nedostatke, i koristi se samo u izuzetnim slučajevima. Kodiranje s pomičnim položajem binarne točke (eng. floating point numbers) Ideja eksponentnom formata uzeta je kao temelj za kodiranje realnih brojeva i u binarnom brojevnom sustavu. Kodiranje se vrši prema izrazu F = ( 1) s m2 e gdje m predstavlja mantisu, e je eksponent dvojke, a s (,1) određuje predznak broja. Eksponent i mantisa se kodiraju u binarnom brojevnom sustavu. Eksponent se kodira kao cijeli broj, a mantisa kao binarni broj s fiksnim položajem binarne točke. Ideja je jednostavna: promjenom eksponenta pomiče se i položaj binarne točke iako se mantisa zapisuje s fiksnim položajem binarne točke. Primjerice, neka je broj kodiran u obliku:.1xxxxxxxxx 2 e gdje x može biti ili 1. Ovaj oblik zapisa realnog broja naziva se nenormalizirani zapis. Pomaknemo li položaj binarne točke za 5 mjesta ulijevo dobije se ekvivalentni zapis 2 n (,1) Dodatak. Logika i kodiranje -9

1.xxxxxxxxx 2 e-5, Posmak bitova ulijevo ekvivalentan je dijeljenju s dva, stoga se vrijednost eksponenta smanjuje za 5. Ovakovi kodni zapis, u kojem je uvijek jedinica na prvom mjestu, naziva se normalizirani zapis. Značaj normaliziranog zapisa je u činjenici što se njime iskorištavaju svi bitovi mantise za kodiranje vrijednosti, dakle osigurava se veća točnost zapisa. Normaliziranim se oblikom ipak ne može kodirati veoma male vrijednosti, pa je tada ipak pogodniji nenormalizirani zapis broja. Treba pojasniti i kako je kodirana vrijednost nula. Pogodno bi bilo da sva bitna polja pri kodiranju vrijednosti nula budu jednaka nuli (zbog logičkih operacija), ali pošto se za kodiranje eksponenta također koristi binarni zapis, vrijednost eksponenta nula se matematički koristi za označavanje brojeva većih od jedinice. Da bi se zadovoljilo zahtjevu kodiranja nule s nultim zapisom eksponenta uobičajeno je da se umjesto stvarne vrijednosti eksponenta kodira vrijednost: E = e + pomak, gdje je pomak neka konstantna vrijednost, a odabire se tako da je jednak najnižoj vrijednosti eksponenta e, koji je negativna vrijednost Ovako zapisani eksponent naziva se pomaknuti eksponent. Značaj pomaka sagledajmo na sljedećem primjeru. Neka je eksponent opisan s 8 bita, tada se E kreće u rasponu od do 255. ko se uzme da je pomak=127, i da je E= rezervirano za kodiranje nule, onda se vrijednost binarnog eksponenta kreće u rasponu od -126 do +127. Postoji više različitih formata zapisa mantise i eksponenta u binarnom kodu. Danas se gotovo isključivo koristi format koji je određen NSI/IEEE standardom br.745 iz 1985. godine. Prema tom standardu koriste se dva tipa kodiranja: jednostruki format (32 bita) i dvostruki format (64 bita). prikazan je na slici 4.1. Jednostruki format realnih brojeva s - predznak e - eksponent m - mantisa s e 31 23 22 s e m Dvostruki format realnih brojeva 63 52 51 Slika 4.1 Format kodiranja realnih brojeva prema IEEE/NSI standardu m STNDRDNI IEEE/NSI FORMT RELNIH ROJEV parametar jednostruki (SINGLE) dvostruki (DOULE) ukupan broj bita 32 (+1) 64 (+1) broj bita eksponenta 8 11 broj bita za predznak 1 1 broj bita mantise 23 (+1) 52 (+1) pomak +127 +123 Emax 255 247 Emin minreal (za nenorm.) (-1) s 1.4 1-45 (-1) s 2.225 1-324 minreal (za norm.) (-1) s 1.175 1-38 (-1) s 2.225 1-38 maxreal (-1) s 3.428 1 +38 (-1) s 1.797 1 +38 Tablica.4. Standardni IEEE/NSI format realnih brojeva itna karakteristika ovog standarda je da je u format za kodiranje realnog broja moguće upisati i šifru o ispravno obavljenoj matematičkoj operaciji. (Npr. dijeljenje s nulom dalo bi beskonačnu vrijednost, koju je nemoguće kodirati, pa se ta operacija izvještava kao greška). inarno kodirani Dodatak. Logika i kodiranje -1

signal greške koristi format binarno kodiranih realnih brojeva, ali pošto nije broj, u standardu se opisuje pod nazivom NaN (Not a Number). Kodiranje sa normaliziranim zapisom mantise je izvršeno na način sa se ne upisuje prva jedinica, čime se podrazumjeva da je mantisa kodirana s jednim bitom više nego je to predviđeno u binarnom zapisu. Vrijednost pomaka i raspona eksponenta dana je u tablici.4. Vrijednost eksponenta Emin je iskorištena za kodiranje nule, a vrijednost Emax za kodiranje NaN-a i beskonačnosti. Zapis formata interpretira se na slijedeći način: 1. ko je E=Emax i m kodna riječ predstavlja NaN, bez obzira na vrijedost predznaka s. 2. ko je E=Emax i m= kodna riječ predtavlja (-1) s ( ). 3. ko je Emin<E<Emax kodna riječ predstavlja broj (-1) s 2 e-127 (1.m), tj.predstavlja normalizirani realni broj. 4. ko je E= i m= kodna riječ prestavlja broj (-1) s (). 1. ko je E= i m kodna riječ predstavlja broj (-1) s 2e e-127 (.m) tj. predstavlja nenormalizirani realni broj (vodeća nula se ne zapisuje). Opis nenormaliziranim brojevima ne osigurava točnost za sve brojeve pa se ovo kodiranje u nekim implementacija ne koristi. Vrijednosti za minimalnu i maksimalnu vrijednost realnog broja u tablici.4 dani su za normalizirani i nenormalizirani format realnog broja. Normaliziranim zapisom postiže se točnost na 7 decimala za jednostruki format, odnosno 15 decimala za prošireni format. Programer, koji programira u višem programskom jeziku, ne mora znati kako se neki broj kodira u procesoru ili memoriji računala. Njega zanimaju pravila za zapis literalnih konstanti, veličina zauzeća memorije, maksimalna i minimalna vrijednost broja, te broj točnih decimala..3.4. SCII KOD Z TEKSTULNE I KONTROLNE ZNKOVE Za kodiranje slova, znamenki i ostalih tzv. kontrolnih znakova gotovo isključivo je u upotrebi američki standard za izmjenu informacija SCII ( merican Standard Code for Information Interchange). Njemu je ekvivalentan međunarodni standard ISO 7. SCII kod se najviše koristi za komuniciranje između računala i priključenih vanjskih jedinica: pisača, crtača, modema, terminala itd. To je sedam bitni kôd (ukupno 128 različitih znakova), od čega se prva 32 znaka koriste kao kontrolni znakovi rezličite namjene, a ostali znakovi predstavljaju slova abecede, pravopisne i matematičke simbole. : (nul) 16: (dle) 32: (sp) 48: 64: @ 8: P 96: ž 112: p 1: (soh) 17: (dc1) 33:! 49: 1 65: 81: Q 97: a 113: q 2: (stx) 18: (dc2) 34: " 5: 2 66: 82: R 98: b 114: r 3: (etx) 19: (dc3) 35: # 51: 3 67: C 83: S 99: c 115: s 4: (eot) 2: (dc4) 36: $ 52: 4 68: D 84: T 1: d 116: t 5: (enq) 21: (nak) 37: % 53: 5 69: E 85: U 11: e 117: u 6: (ack) 22: (syn) 38: & 54: 6 7: F 86: V 12: f 118: v 7: (bel) 23: (etb) 39: ' 55: 7 71: G 87: W 13: g 119: w 8: (bs) 24: (can) 4: ( 56: 8 72: H 88: X 14: h 12: x 9: (tab) 25: (em) 41: ) 57: 9 73: I 89: Y 15: i 121: y 1: (lf) 26: (eof) 42: * 58: : 74; J 9: Z 16: j 122: z 11: (vt) 27: (esc) 43: + 59: ; 75: K 91: [ 17: k 123: { 12: (np) 28: (fs) 44:, 6: < 76: L 92: \ 18: l 124: 13: (cr) 29: (gs) 45: - 61: = 77: M 93: ] 19: m 125: } 14: (so) 3: (rs) 46:. 62: > 78: N 94: ^ 11: n 126: ~ 15: (si) 31: (us) 47: / 63:? 79: O 95: _ 111: o 127: del Tablica.5. CSII standard za kodiranje znakova U Hrvatskoj se za latinična slova Č,Š,Ž,Ć,Đ,č,ć,ž,š,đ koristi modifikacija SCII standarda. Nazvat ćemo je HR-SCII standard (prikazan je u tablici.5). Na IM PC računalima se koristi 8-bitno kodiranje znakova, čime je omogućeno kodiranje 256 znakova. Ovaj kod se naziva ECDIC (Extended inary Coded Decimal Interchange Code). Prvih 128 znakova ovog koda jednaki su SCII standarda, a ostali znakovi predstavljaju različite Dodatak. Logika i kodiranje -11

grafičke i matematičke simbole te slova koja se koriste u alfabetu većine zapadno-evropskih zemalja, a nisu obuhvaćena SCII standardom. U sklopu tog standarda predviđeno je da se znakovi Č,Š,Ž,Ć,Đ,č,ć,ž,š,đ kodiraju vrijednostima većim od 127. Taj standard ima oznaku ECDIC-852 i prikazan je u tablici.6. HR-SCII dec hex SCII HR-SCII 64 4 @ Ž 91 5 [ Š 92 5C \ Đ 93 5D ] Ć 94 5E ^ Č 96 6 ` ž 123 7 { š 124 7C đ 125 7D } ć 126 7E ~ č.3.5. Kodiranje logičkih vrijednosti IM ECDIC-852 standard dec hex ECDIC-852 166 6 Ž 23 E6 Š 29 D1 Đ 172 C Ć 143 8F Č 167 7 ž 231 E7 š 28 D đ 134 86 ć 159 9F č Tablica.6. HR_SCII i ECDIC-852 standard Moguće su samo su dvije logičke vrijednosti: istina i laž. U većini programskih jezika (C++, Pascal) ove vrijednosti se zapisuju s true i false. U C jeziku se ne koristi posebno označavanje logičkih vrijednosti, ali vrijedi pravilo da se svaka numerička vrijednost može tretirati kao logička vrijednost istina ako je različita od nule, odnosno laž ako je jednaka nuli. Logičke vrijednosti nastaju pri ispitivanju relacijskih izraza s operatorima: > (veće), < (manje), >= (veće ili jednako),<= (manje ili jednako), == (jednako) i!= (nije jednako). U C jeziku, ako je vrijednost relacijskog izraza logička vrijednost istina ona se kodira kao numerička vrijednost 1, a logička vrijednost laž se kodira kao numerička vrijednost. Primjerice u izrazu a = x > y; varijabli a se pridjeljuje vrijednost 1 ako je izraz na desnoj strani istinit, odnosno ako je x veće od y. U suprotnome, pridjeljuje se vrijednost. Relacijski odnos dvije vrijednosti se pri izvršavanju programa zapravo određuje pomoću operacije oduzimanja prema slijedećoj tablici ako je x == y x!= y x > y x < y x <= y x >= y x-y > 1 1 1 x-y = 1 1 1 x-y < 1 1 1 Tablica.7. Izvršavanje relacijskih operacija C jezika Dodatak. Logika i kodiranje -12