Osnovi raunarstva Matematike osnove rada raunara Matematike osnove

  • Slides: 54
Download presentation
Osnovi računarstva Matematičke osnove rada računara

Osnovi računarstva Matematičke osnove rada računara

Matematičke osnove rada računara • Brojni sistemi – pozicioni i nepozicioni brojni sistemi –

Matematičke osnove rada računara • Brojni sistemi – pozicioni i nepozicioni brojni sistemi – računarske operacije • Predstavljanje celobrojnih brojeva u računaru – predstavljanje negativnih brojeva • Predstavljanje razlomljenih brojeva u računaru • Kodiranje informacija u računaru • Kodovi za detekciju i korekciju grešaka 2/54

Brojni sistemi • Dva osnovna tipa su : pozicioni i nepozicioni brojni sistemi –

Brojni sistemi • Dva osnovna tipa su : pozicioni i nepozicioni brojni sistemi – Nepozicioni brojni sistem - Rimski Brojni Sistem: • I – jedan • V – pet • X – deset • L – pedeset • C – sto • D – pet stotina • M – hiljadu • M – milion (broj crtica iznad slova M označava koliko puta množimo sa hiljadu). 3/54

Brojni sistemi • Egipatski 4/54

Brojni sistemi • Egipatski 4/54

Brojni sistemi • Rimski brojni sistem – datum izgradnje određene zgrade 5/54

Brojni sistemi • Rimski brojni sistem – datum izgradnje određene zgrade 5/54

Pozicioni brojni sistem • Svaka cifra ima zadatu težinu u zapisu broja. • Opšti

Pozicioni brojni sistem • Svaka cifra ima zadatu težinu u zapisu broja. • Opšti oblik: anan-1. . . a 1 a 0 , a-1 a-2. . . a-m tj. an∙bn+an-1∙bn-1 +. . . + a 1∙b 1 + a 0∙b 0 + a-1∙b-1+a-2∙b-2+. . . +a-m∙b-m • • a – cifra b – osnova (baza) n+1 – broj celobrojnih cifara m – broj decimala 6/54

Pozicioni brojni sistem - primeri • 198410 = 1∙ 103 + 9∙ 102 +

Pozicioni brojni sistem - primeri • 198410 = 1∙ 103 + 9∙ 102 + 8∙ 101 + 4∙ 100 = 1∙ 1000 + 9∙ 100 + 8∙ 10 + 4∙ 1 = 1000 + 900 + 80 + 4 = 1984 • 100112 = 1∙ 24 + 0∙ 23 + 0∙ 22 + 1∙ 21 + 1∙ 20 = 1∙ 16 + 0∙ 8 + 0∙ 4 + 1∙ 2 + 1∙ 1 = 16 + 2 + 1 = 19 • 12, 310= 1∙ 101 + 2∙ 100 + 3∙ 10 -1 = 1∙ 10 + 2∙ 1 + 3∙ 0, 1 = 10+2+0, 3 = 12, 3 7/54

Predstavljanje brojeva u različitim brojnim sistemima • Cifre brojnog sistema su: 0 do (baza

Predstavljanje brojeva u različitim brojnim sistemima • Cifre brojnog sistema su: 0 do (baza – 1) • Primer: – binarni (b=2): {0, 1} – oktalni (b=8): {0, 1, 2, 3, 4, 5, 6, 7} – decimalni (b=10): {0, 1, 2, 3, 4 , 5 , 6 , 7 , 8, 9} – heksadecimalni (b=16): {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} 8/54

Primer 9/54

Primer 9/54

Računske operacije – binarni brojni sistem • Sabiranje: • Oduzimanje: 10/54

Računske operacije – binarni brojni sistem • Sabiranje: • Oduzimanje: 10/54

Računske operacije – binarni brojni sistem • Množenje: • Deljenje: – nulom nije dozvoljeno

Računske operacije – binarni brojni sistem • Množenje: • Deljenje: – nulom nije dozvoljeno – jedinicom - trivijalno 11/54

Računske operacije – binarni brojni sistem 11 +11 --110 -101 --001 110 x 11

Računske operacije – binarni brojni sistem 11 +11 --110 -101 --001 110 x 11 -------110 + 110 -------10010 1001 : 11 = 0011 ILI 11 ---100 - 11 ----0011 -----0000 12/54

Računske operacije – binarni brojni sistem 10010+111 =11001 ------------------11 10010 + 111 ---------11001 -111

Računske operacije – binarni brojni sistem 10010+111 =11001 ------------------11 10010 + 111 ---------11001 -111 =10010 ------------------11 11001 111 ---------10010*101 =11001 -----------------10010 00000 + 10010 ------------------1011010 13/54

Računske operacije – binarni brojni sistem - - 1 1 0 0 1 0

Računske operacije – binarni brojni sistem - - 1 1 0 0 1 0 / 1 0 1 = 0 0 1 0 ILI. 1 0 --------------------110 101 -----0010 -----101 -----0000 14/54

Računske operacije – oktalni brojni sistem 447 +652 ---1321 54, 3 -45, 4 ---6,

Računske operacije – oktalni brojni sistem 447 +652 ---1321 54, 3 -45, 4 ---6, 7 173 x 21 -------173 + 366 -------4053 2603 : 21 = 123 ---26 -21 ---50 -42 ---63 ----0 15/54

Računske operacije – heksadecimalni brojni sistem 127 +1 AA ---2 D 1 2 C

Računske operacije – heksadecimalni brojni sistem 127 +1 AA ---2 D 1 2 C -25 ---7 53 x 11 -------53 + 53 -----583 1 A 0 x 13 -------4 E 0 + 1 A 0 -----1 EE 0 583 : 11 = 53 ---58 -55 ---33 ---0 16/54

Konverzije brojnih sistema • Opšta formula – celobrojni deo: celobrojni deo (a) u novu

Konverzije brojnih sistema • Opšta formula – celobrojni deo: celobrojni deo (a) u novu bazu b: a : b = r 1 i ostatak ost 1 r 1 : b = r 2 i ostatak ost 2 r 2 : b = r 3 i ostatak ost 3. . . poslednji korak kada nam se b više ne sadrži u rn rn : b = 0 i ostatak ostn -----------------rezultat: ostn. . . ost 3 ost 2 ost 1 17/54

Primer • Broj 701, 62510 konvertovati u heksadecimalni brojni sistem. 701 : 16 =

Primer • Broj 701, 62510 konvertovati u heksadecimalni brojni sistem. 701 : 16 = 43 i ostatak 13 D 43 : 16 = 2 i ostatak 11 B 2 : 16 = 0 i ostatak 2 -----------------rezultat: 2 BD 18/54

Konverzije brojnih sistema • Opšta formula – razlomljeni deo: razlomljeni deo (a) u novu

Konverzije brojnih sistema • Opšta formula – razlomljeni deo: razlomljeni deo (a) u novu bazu b: a ∙ b = c 1, r 1 tj. celobrojni deo c 1 i razlomljeni deo r 1 ∙ b = c 2, r 2 tj. celobrojni deo c 2 i razlomljeni deo r 2 ∙ b = c 3, r 3 tj. celobrojni deo c 3 i razlomljeni deo r 3. . . poslednji korak kada nam je ostatak 0 rn ∙ b = cn, 0 tj. celobrojni deo cn i razlomljeni deo 0 ---------------------Rezultat: c 1 c 2. . . cn – Problem: ako razlomljeni deo ne bude 0 19/54

Primer • Razlomljeni deo: 0, 625 ∙ 16 = 10, 0 tj. celobrojni deo

Primer • Razlomljeni deo: 0, 625 ∙ 16 = 10, 0 tj. celobrojni deo 10 A i razlomljeni deo 0 ------------ • Konačan rezultat: 2 BD, A 16 0, 625*16 = 10, 0 -----------------3, 7 5 0 + 6, 2 5 ------------------10, 0 0 0 20/54

Primer • Broj 701, 007812510 konvertovati u oktalni brojni sistem. 701 : 8 =

Primer • Broj 701, 007812510 konvertovati u oktalni brojni sistem. 701 : 8 = 87 i ostatak 5 87 : 8 = 10 i ostatak 7 10 : 8 = 1 i ostatak 2 1 : 8 = 0 i ostatak 1 -----------------rezultat: 1275 21/54

Primer • Razlomljeni deo: 0, 0078125 ∙ 8 = 0, 0625 tj. celobrojni deo

Primer • Razlomljeni deo: 0, 0078125 ∙ 8 = 0, 0625 tj. celobrojni deo 0 i razlomljeni deo 0, 0625 ∙ 8 = 0, 5 tj. celobrojni deo 0 i razlomljeni deo 0, 5 ∙ 8 = 4, 0 tj. celobrojni deo 4 i razlomljeni deo 0 ------------ • Konačan rezultat: 1275, 0048 0, 0078125*8 = 0, 0625 --------------0, 0625000 0, 0625*8 = 0, 5 ----------0, 5000 0, 5*8=4, 0 ------4, 0 22/54

Primer • Broj 37, 62510 konvertovati u binarni brojni sistem. 37 : 2 =

Primer • Broj 37, 62510 konvertovati u binarni brojni sistem. 37 : 2 = 18 i ostatak 1 18 : 2 = 9 i ostatak 0 9 : 2 = 4 i ostatak 1 4 : 2 = 2 i ostatak 0 2 : 2 = 1 i ostatak 0 1 : 2 = 0 i ostatak 1 -----------------rezultat: 100101 23/54

Primer • Razlomljeni deo: 0, 625 ∙ 2 = 1, 250 tj. celobrojni deo

Primer • Razlomljeni deo: 0, 625 ∙ 2 = 1, 250 tj. celobrojni deo 1 i razlomljeni deo 0, 250 ∙ 2 = 0, 5 tj. celobrojni deo 0 i razlomljeni deo 0, 5 ∙ 2 = 1, 0 tj. celobrojni deo 1 i razlomljeni deo 0 ------------ • Konačan rezultat: 100101, 1012 24/54

Konverzija iz binarnog u oktalni i heksadecimalni brojni sistem • Drugačijim grupisanjem bitova: –

Konverzija iz binarnog u oktalni i heksadecimalni brojni sistem • Drugačijim grupisanjem bitova: – po tri bita za oktalni brojni sistem (b=8) – po četiri bita za heksadecimalni brojni sistem (b=16) • Primer: imamo binarni broj 11001112=103 10 001 100 1112 = 1478 0110 01112 = 6716 25/54

heksadecimalni oktalni • Preko binarnog brojnog sistema. • Primer: A 316 = 1010 00112

heksadecimalni oktalni • Preko binarnog brojnog sistema. • Primer: A 316 = 1010 00112 010 100 0112 = 2438 26/54

Predstavljanje celobrojnih brojeva u računaru • Svaka memorijska ćelija u računaru ima 8 bitova

Predstavljanje celobrojnih brojeva u računaru • Svaka memorijska ćelija u računaru ima 8 bitova – jedan bajt. Na 8 pozicija može da se smesti kombinacija 0 i 1 – u jedan bajt se može smestiti broj u rasponu od 0 – 255 tj. u računaru se to predstavlja kao – 0000 – 1111 • Ako je celobrojna vrednost veća od 255, uzme se više bajtova: – dva bajta – 16 bita: 0 – 65535 – četiri bajta – 32 bita: 0 – 4. 294. 967. 295 27/54

Predstavljanje negativnih brojeva • Preko znaka i apsolutne vrednosti – komplikovan algoritam za sabiranje

Predstavljanje negativnih brojeva • Preko znaka i apsolutne vrednosti – komplikovan algoritam za sabiranje i oduzimanje • npr. za broj 10 ako koristimo 8 bita to bi bilo 00001010 • npr. za broj -10 ako koristimo 8 bita to bi bilo 10001010 • Preko komplementa – jednostavan algoritam za sabiranje i oduzimanje 28/54

Predstavljanje negativnih brojeva komplementom • Potpuni komplement (u binarnom brojnom sistemu se još zove

Predstavljanje negativnih brojeva komplementom • Potpuni komplement (u binarnom brojnom sistemu se još zove i komplement dvojke). • Nepotpuni komplement (u binarnom brojnom sistemu se još zove i komplement jedinice). • U oba sistema se poslednja cifra koristi za znak broja (pozitivan ili negativan). 29/54

Predstavljanje negativnih brojeva 30/54

Predstavljanje negativnih brojeva 30/54

Računanje komplementa (bez oduzimanja) • Potpuni komplement: invertovati sve bitove i dodati 1. Npr.

Računanje komplementa (bez oduzimanja) • Potpuni komplement: invertovati sve bitove i dodati 1. Npr. primena komplementa nad +2 dobija se -2 tj. -2 se predstavlja kao 11102 – Primer: 00102 => 11012 + 1 = 11102 – interval -(2 N-1) do +(2 N-1 -1) za 8 bita je -128 do 127 • Nepotpuni komplement: invertovati sve bitove. – Primer: 00102 => 11012 • Komplementi pozitivnih brojeva su isti kao i ti sami brojevi. • NAPOMENA: SAMO ZA NEGATIVNE BROJEVE SE PRAVI KOMPLEMENT 31/54

Sabiranje 8 -bitnih brojeva 15 - 5 = 1510 + (-5) 10= 0000 11112

Sabiranje 8 -bitnih brojeva 15 - 5 = 1510 + (-5) 10= 0000 11112 + 1111 10112 = 000010102 = 1010 ------------------1111 00001111 (15) + 11111011 (-5 ) ------------00001010 (10) 32/54

Potpuni komplement • • broj x u neoznačenoj binarnoj aritmetici N broj bita baza

Potpuni komplement • • broj x u neoznačenoj binarnoj aritmetici N broj bita baza b Potpuni. Komplement (x) = b. N – x Pošto se ovde koristi oduzimanje, nećemo koristiti ovu formulu, već invertovanje i sabiranje sa jedan 33/54

Potpuni komplement • Primer: x = 1012 = 01012 = 510 u neoznačenoj binarnoj

Potpuni komplement • Primer: x = 1012 = 01012 = 510 u neoznačenoj binarnoj aritmetici N=4 b=2 Potpuni. Komplement (5) = 24 – 5 = 100002 – 01012 = 10112 znak! NAPOMENA: Kod potpunog i nepotpunog komplemeta poslednja cifra se koristi za znak broja (pozitivan ili negativan). 34/54

Sabiranje sa potpunim komplementom • Pravilo: A – B = A + Potpuni. Komplement(B)

Sabiranje sa potpunim komplementom • Pravilo: A – B = A + Potpuni. Komplement(B) = Rezultat + Prenos • Ako je Prenos = 1 onda je Rezultat korektan. • Ako je Prenos = 0 onda je rezultat negativan (stvarni rezultat je potpuni komplement od rezultata sa negativnim predznakom). 35/54

Primer • 01012 – 00102 = 01012 + 11102 = 100112 prenos • 00012

Primer • 01012 – 00102 = 01012 + 11102 = 100112 prenos • 00012 – 00102 = 00012 + 11102 = 011112 prenos Stvarni rezultat: - Potpuni. Komplement(11112) = -(100002 – 11112) = - 000012 36/54

Prekoračenje (overflow) • Javlja se kada se prilikom sabiranja dva broja dobije rezultat koji

Prekoračenje (overflow) • Javlja se kada se prilikom sabiranja dva broja dobije rezultat koji ne može da stane u zadati broj bitova • Pravilo: – ako se prilikom sabiranja dva pozitivna ili dva negativna broja dobije broj suprotnog znaka, dogodilo se prekoračenje. znak! • Primer: 01012 + 01002 = 10012 + 10102 = 100112 znak! ispada -7 što nije tačno (5 + 4 = 9) ((-7)+(-6) = -13) ispada +3 što nije tačno 37/54

Nepotpuni komplement • • broj x u neoznačenoj binarnoj aritmetici N bita baza b

Nepotpuni komplement • • broj x u neoznačenoj binarnoj aritmetici N bita baza b Nepotpuni. Komplement (x) = (b. N -1) – x 38/54

Nepotpuni komplement • Primer: x = 1012 = 01012 = 510 u neoznačenoj binarnoj

Nepotpuni komplement • Primer: x = 1012 = 01012 = 510 u neoznačenoj binarnoj aritmetici N=4 b=2 Nepotpuni. Komplement (5) = (24 -1) – 5 = (100002 – 00012) – 01012 = 10102 znak! NAPOMENA: Kod potpunog i nepotpunog komplemeta poslednja cifra se koristi za znak broja (pozitivan ili negativan). 39/54

Sabiranje sa nepotpunim komplementom • Pravilo: A – B = A + Nepotpuni. Komplement(B)

Sabiranje sa nepotpunim komplementom • Pravilo: A – B = A + Nepotpuni. Komplement(B) = Rezultat + Prenos • Ako je Prenos = 1 onda je konačan rezultat = rezultat bez prenosa + 1. • Ako je Prenos = 0 onda je rezultat negativan (stvarni rezultat je nepotpuni komplement od rezultata sa negativnim predznakom). 40/54

Primer • 01012 – 00102 = 01012 + 11012 = 1 00102 Pravi rezultat:

Primer • 01012 – 00102 = 01012 + 11012 = 1 00102 Pravi rezultat: 00102 + 1 = 00112 prenos • 00012 – 00102 = 00012 + 11012 = 011102 prenos Stvarni rezultat: - Nepotpuni. Komplement(11102) = -(100002 – 00012 – 11102) = - 000012 41/54

PONAVLJANJE - Računanje komplementa bez oduzimanja! • Potpuni komplement: invertovati sve bitove i dodati

PONAVLJANJE - Računanje komplementa bez oduzimanja! • Potpuni komplement: invertovati sve bitove i dodati 1. – Primer: 00102 => 11012 + 1 = 11102 • Nepotpuni komplement: invertovati sve bitove. – Primer: 00102 => 11012 42/54

Predstavljanje celobrojnih brojeva u računaru • Svaka memorijska ćelija u računaru ima 8 bitova

Predstavljanje celobrojnih brojeva u računaru • Svaka memorijska ćelija u računaru ima 8 bitova – jedan bajt. – u jedan bajt se može smestiti broj u rasponu od: • 0 – 255, neoznačen • -128 – 127, označen, u potpunom/nepotpunom komplementu • Ako je celobrojna vrednost veća od 128/255, uzme se više bajtova: – dva bajta – 16 bita: • 0 – 65535, neoznačen • -32768 – 32767, označen, u potpunom/nepotpunom komplementu – četiri bajta – 32 bita: • 0 – 4. 294. 967. 295, neoznačen • -2. 147. 483. 648 – 2. 147. 483. 647, označen, u potpunom/nepotpunom komplementu 43/54

Predstavljanje razlomljenih brojeva u računaru • Za predstavu razlomljenih brojeva se najčešće koriste 32

Predstavljanje razlomljenih brojeva u računaru • Za predstavu razlomljenih brojeva se najčešće koriste 32 ili 64 bita. • U nepokretnom zarezu – fiksna pozicija decimalnog zareza. – određeni broj bita (npr. 4) za zapis broja ispred decimalne tačke (zareza) i određeni broj bita (npr. 6) za zapis broja iza decimalne tačke (zareza) – npr. 12. 045 bi mogao da se predstavi kao +0012. 045000 44/54

Predstavljanje razlomljenih brojeva u računaru • U pokretnom zarezu (floating point) – brojevi se

Predstavljanje razlomljenih brojeva u računaru • U pokretnom zarezu (floating point) – brojevi se predstavljaju u obliku: m ∙ be m – mantisa b – baza e – eksponent • U memoriji računara se pamte mantisa i eksponent kao celobrojne označene vrednosti, najčešće sa bazom 2. 45/54

Primer • 2, 510 = 2, 510*100 = 2510*10 -1 • 2, 510 =

Primer • 2, 510 = 2, 510*100 = 2510*10 -1 • 2, 510 = 10, 12 *20 = 1012*2 -1 -----------------------objašnjenje 2, 510 = 10, 12 ceo deo 2: 2 = 1 i ostatak 0 1 : 2= 0 i ostatak 1 -----------------rezultat je 10 ----------------------razlomljeni deo 0, 5*2=1, 0 tj. celobrojni deo 1 i razlomljeni deo 0 -----------------rezultat je 1 46/54

Pokretni zarez • Sabiranje odn. oduzimanje - pre sabiranja (oduzimanja) brojevi se svedu na

Pokretni zarez • Sabiranje odn. oduzimanje - pre sabiranja (oduzimanja) brojevi se svedu na isti eksponent: m 1∙ be + m 2 ∙ be = (m 1 + m 2) ∙ be • Množenje, odn. deljenje: (m 1∙ be 1) ∙ (m 2 ∙ be 2) = (m 1 ∙ m 2) ∙ b(e 1+e 2) • Svođenje eksponenata na istu vrednost se svodi na povećanje manjeg eksponenta, uz istovremeno deljenje mantise bazom – u računaru se deljenje matise bazom 2 svodi na pomeranje desno bitova. 47/54

Pokretni zarez • Normalizovana mantisa: kada je b-1 ≤ |m| ≤ 1 • U

Pokretni zarez • Normalizovana mantisa: kada je b-1 ≤ |m| ≤ 1 • U praksi se normalizacija mantise svodi na zapis: 1, xxxx, gde se 1 podrazumeva • Tada je preciznost najveća. • Pokretni zarez u računarnima, u nekim situacijama nije dovoljno precizan! – razlog je taj što je baza 2, pa konverzija decimalnih brojeva u oblik m ∙ 2 e ne daje okrugao broj. – greška je veoma mala, ali se uzastopnim operacijama može akumulirati. 48/54

Primer • 2*102 + 1*101 = 2*102 + 0, 1*102 = (2+0, 1)*102 =

Primer • 2*102 + 1*101 = 2*102 + 0, 1*102 = (2+0, 1)*102 = 2, 1*102 = 210 • 2, 510 + 210 = 1012*2 -1 + 102*20 = 10, 12*20 + 10, 02*20 = (10, 12 + 10, 02)*20 = (100, 12)*20 =(10012)*2 -1 = 910 * 1/2 = 4, 510 • 2*102 * 3*101 = (2*3)*102+1 = 6*103 = 6000 • 2, 510 * 210 = 1012*2 -1 * 102*20 = (1012 * 102)*2(-1+0) = (1010 2)*2 -1 = 1010 * 1/2 = 510 49/54

Kodiranje alfanumeričkih informacija • Alfanumerički simboli: – – numerički simboli (0, 1, . .

Kodiranje alfanumeričkih informacija • Alfanumerički simboli: – – numerički simboli (0, 1, . . . , 9) slovni simboli (A, B, . . . , Z) inteprunkcijski znakovi (, . ; : “. . . ) specijalni simboli (#, $, %, . . . ) • Standardi: – ASCII (American Standard Code for Information Interchange) – ISO 8859 -1 – Windows CP 1250 – Unicode 50/54

Kodovi za detekciju i korekciju grešaka • Koncentrisaćemo se na binarni brojni sistem. Sve

Kodovi za detekciju i korekciju grešaka • Koncentrisaćemo se na binarni brojni sistem. Sve informacije će biti kodirane binarno! • Uzrok pojave grešaka. • Kodovi za detekciju grešaka – u stanju su da detektuju grešku, ali ne i da je koriguju • Kodovi za korekciju grešaka – detekcija i korekcija grešaka 51/54

Kodovi za detekciju grešaka • Najjednostavnije je da se doda još jedan bit tako

Kodovi za detekciju grešaka • Najjednostavnije je da se doda još jedan bit tako da ukupan broj jedinica u poruci bude paran ili neparan. • Primer: – originalna poruka: 001101 – sa dodatnim bitom (uk. br. jedinica paran): 0011011 – sa greškom: 0001011 – vidimo da je došlo do greške pošto je ukupan broj jedinica neparan! • Greške od više od jednog bita mogu da prođu nedetektovane! 1111011 52/54

CRC kod • Cyclic Redundancy Character • Poruka se kao niz bitova deli sa

CRC kod • Cyclic Redundancy Character • Poruka se kao niz bitova deli sa nekim unapred dogovorenim brojem, rezultat se odbacuje a ostatak pri deljenju se doda uz poruku. • Na prijemnoj strani se primljena poruka deli istim brojem i ostatak se poredi sa primljenim ostatkom. 53/54

Karakter za proveru bloka b 1 b 2 b 3 b 4 p 1

Karakter za proveru bloka b 1 b 2 b 3 b 4 p 1 b 5 b 6 b 7 b 8 p 2 p 3 p 4 p 5 p 6 p 7 • U slučaju greške od jednog bita bilo gde, moguće je detektovati i korigovati grešku: b 1 b 2 b 3 b 4 p 1 b 5 b 6 b 7 b 8 p 2 p 3 p 4 p 5 p 6 p 7 54/54