Digitalna tehnika Brojni sistemi Prof Biljana Vidakovi Brojni
Digitalna tehnika Brojni sistemi Prof. Biljana Vidaković
Brojni sistemi n Brojni sistemi su sistemi simbola za označavanje skupova. Za osnovu brojnog sistema može se uzeti bilo koji broj veći od 1. Pored decimalnog brojnog sistema sa osnovom 10 (prirodni brojni sistem za čovjeka) najpoznati brojni sistemi su: n n n binarni (b=2): {0, 1} oktalni (b=8): {0, 1, 2, 3, 4, 5, 6, 7} heksadecimalni. (b=16): {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} U digitalnoj tehnici najpogodniji za primjenu je binarni brojni sistem sa osnovom 2 koji predstavlja “prirodni” jezik računara. Prednost binarnog brojnog sistema je jednostavnost tehničke realizacije i pouzdanost. Nedostatak binarnog brojnog sistema je znatno više cifarskih mjesta u odnosu na decimalni brojni sistem.
Decimalni i binarni brojni sistemi n Decimalni brojni sistem ima deset različitih cifara 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 i osnovu 10. Svaka cifra ima zadatu težinu. Spada u pozicione brojne sisteme. n Opšti oblik broja u decimalnom brojnom sistemu: n A = an 10 n + an-1 10 n-1 + an-2 10 n-2 + + a-210 -2+. . . + a-m 10 -m n n . . . + a 1 101 + a 0 100 + a-110 -1 a – koeficijenti sa vrijednostima od 0 -9 Opšti oblik za broj sa n cijelih i m razlomljenih mjesta: A = an bn + an-1 bn-1 + an-2 bn-2 +. . . + a 1 b 1 + a 0 b 0 + a-1 b-1+ a-2 b-2 +. . . + a-mb-m n n n b – osnova (baza) n+1 – broj cjelobrojnih cifara m – broj decimala
Decimalni i binarni brojni sistemi n Binarni brojni sistem ima osnovu 2 i dvije cifre 0 i 1. Svaka cifra ima zadatu težinu tj. spada u težinske brojne sisteme. n Opšti oblik broja u binarnom brojnom sistemu: n A = an 2 n + a-22 -2+ n n an-1 2 n-1 + an-2 2 n-2 +. . . + a 1 21 + a 0 20 + a-12 -1 +. . . + a-m 2 -m a – koeficijenti sa vrijednostima od 0 i 1 Svaki član u nizu ima težinu dvostruko veću od prethodnog člana.
Decimalni i binarni brojni sistemi-primjeri n 198410 = 1∙ 103 + 9∙ 102 + 8∙ 101 + 4∙ 100 = 1∙ 1000 + 9∙ 100 + 8∙ 10 + 4∙ 1 = 1000 + 900 + 80 + 4 = 1984 n 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 n 12, 310= 1∙ 101 + 2∙ 100 + 3∙ 10 -1 = 1∙ 10 + 2∙ 1 + 3∙ 0, 1 = 10+2+0, 3 = 12, 3
Oktalni i heksadecimalni brojni sistemi n Oktalni brojni sistem ima osnovu 8 i cifre 0, 1, 2, 3, 4, 5, 6 i 7. Svaka cifra ima zadatu težinu tj. spada u težinske brojne sisteme. n Opšti oblik broja u oktalnom brojnom sistemu: n A = an 8 n + a-28 -2+ n n an-1 8 n-1 + an-2 8 n-2 +. . . + a 1 81 + a 0 80 + a-18 -1 +. . . + a-m 8 -m a – koeficijenti sa vrijednostima od 0 do 7. Oktalni brojevi manji od nule se vrlo rijetko upotrebljavaju.
Oktalni i heksadecimalni brojni sistemi n Heksadecimalni brojni sistem ima osnovu 16 i cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 a za veće brojeve koriste se slova A = 10 B = 11 C = 12 D = 13 E = 14 F = 15 Svaka cifra ima zadatu težinu tj. spada u težinske brojne sisteme. n Opšti oblik broja u oktalnom brojnom sistemu: n A = an 16 n + a-216 -2+ n n an-1 16 n-1 + an-2 16 n-2 +. . . + a 1 161 + a 0 160 + a-116 -1 +. . . + a-m 16 -m a – koeficijenti sa vrijednostima od 0 do 9 i od A do F. Heksadecimalni brojevi manji od nule se vrlo rijetko upotrebljavaju.
Primjer
Konverzije brojnih sistema n Opšta formula q cjelobrojni dio: cjelobrojni dio (a) u novu bazu b: a : b = r 1 i ostatak o 1 r 1 : b = r 2 i ostatak o 2 r 2 : b = r 3 i ostatak o 3. . . rn : b = 0 i ostatak on -----------------rezultat: on. . . o 3 o 2 o 1
Konverzije brojnih sistema n Opšta formula q q razlomljeni dio: razlomljeni dio (a) u novu bazu b: a ∙ b = c 1, r 1 tj. cjelobrojni dio c 1 i razlomljeni dio r 1 ∙ b = c 2, r 2 tj. cjelobrojni dio c 2 i razlomljeni dio r 2 ∙ b = c 3, r 3 tj. cjelobrojni dio c 3 i razlomljeni dio r 3. . . rn ∙ b = cn, 0 tj. cjelobrojni dio cn i razlomljeni dio 0 ---------------------Rezultat: c 1 c 2. . . cn Problem: ako razlomljeni dio ne bude 0
Konverzija decimalnog broja u binarni i obrnuto n n n 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 Razlomljeni dio: 0, 0625 0, 625 ∙ 2 = 1, 25 tj. cjelobrojni dio 1 i razlomljeni dio 0, 25 ∙ 2 = 0, 5 tj. cjelobrojni dio 0 i razlomljeni dio 0, 5 ∙ 2 = 1, 0 tj. cjelobrojni dio 1 i razlomljeni dio 0 -----------rezultat: 101 Konačan rezultat: 100101, 1012 dobije se spajanjem cjelobrojnog i razlomljenog dijela
Konverzija decimalnog broja u binarni i obrnuto n (1101011, 01)2 = 1 ∙ 26 + 1 ∙ 25 + 0 ∙ 24 + 1 ∙ 23 + 0 ∙ 22 + 1 ∙ 21 + 1 ∙ 20, + 0 ∙ 2 -1 + 1 ∙ 2 -2 = 64 + 32 + 0 + 8 + 0 + 2 + 1, 0 + ¼ = (107, 25) 10 -----------rezultat 107, 2510
Konverzija binarnih brojeva u oktalne i obrnuto n n n Pošto je 8 = 23 znači da za jedan jednocifreni oktalni broj treba tri bita. Binarni broj se dijeli u grupe po tri bita počevši od pozicionog zareza. Primjer: 1101011011112 = 110 101 111 = 65578 6 5 5 7 -----------n n Oktalni broj se takođe jednostavno pretvara u binarni Primjer: 701528 = 111 000 001 101 010 = 1110000011010102 7 0 1 5 2 ------------
Konverzija oktalnih brojeva u decimalne i obrnuto n Broj 64310 konvertovati u oktalni brojni sistem. 1 643 -512 = 131 -128 = 3 -0 = 3 -3 = 0 rezultat: 12038 1 83 2 82 0 81 3 80 2 0 3
Konverzija oktalnih brojeva u decimalne i obrnuto n Primjer n (1267)8 = 7 ∙ 80 = 7 + 6 ∙ 81 = 48 + 2 ∙ 82 = 128 + 1 ∙ 83 = 512 ------69510 rezultat 69510
Konverzija binarnih brojeva u heksadecimalne i obrnuto n n n Pošto je 16 = 24 znači da za jedan jednocifreni heksadecimalni broj trebaju četiri bita. Binarni broj se dijeli u grupe po četiri bita počevši od pozicionog zareza. Primjer: 10011010000111112 = 1001 1010 0001 1111 9 A 1 F = 9 A 1 F 16 n n Heksadecimalni broj se takođe jednostavno pretvara u binarni Primjer: E 6 A 216 = E 6 A 1110 0110 1010 2 = 1110011010100010 2 0010
Konverzija heksadecimalnih brojeva u decimalne i obrnuto n Primjer: 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 ED n Primjer: Broj 1 E 9 B 16 konvertovati u decimalni brojni sistem. 1 E 9 B 16 nulta cifra = B iz tabele 11 prva cifra = 9 iz tabele 144 cifra = E iz druga 3584 + 4096 treća cifratabele = 1 iz tabele 783510
heksadecimalni oktalni n n Preko binarnog brojnog sistema. Primjer: A 316 = 101000112 0101000112 = 2438
Računske operacije – binarni brojni sistem n Sabiranje: n Oduzimanje:
Računske operacije – binarni brojni sistem n Množenje: n Deljenje: q q nulom nije dozvoljeno jedinicom - trivijalno
Računske operacije – binarni brojni sistem 11 +11 --110 -101 --001 110 x 11 -------110 + 110 -----10010 1001 : 11 = 11 ---100 -011 ----0011 -----0000
Računske operacije – oktalni brojni sistem 447 +652 ---1321 54, 3 -45, 4 ---6, 7 123 x 21 -------123 + 246 -----2603 : 21 = 123 ---26 -21 ---50 -42 ---63 ----0
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
Predstavljanje cjelobrojnih brojeva u računaru n Svaka memorijska ćelija u računaru ima 8 bitova – jedan bajt. q n u jedan bajt se može smjestiti broj u rasponu od 0 – 255 Ako je cjelobrojna vrijednost veća od 255, uzme se više bajtova: q q dva bajta – 16 bita: 0 – 65535 četiri bajta – 32 bita: 0 – 4. 294. 967. 295
Predstavljanje negativnih brojeva n Preko znaka i apsolutne vrijednosti q n komplikovan algoritam za sabiranje i oduzimanje Preko komplementa q jednostavan algoritam za sabiranje i oduzimanje
Predstavljanje negativnih brojeva komplementom n n n 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).
Potpuni komplement n n broj x n cifara baza b Potpuni omplement (x) = bn+1 – x
Potpuni komplement n Primjer: znak! x = 00102=210 n=3 b=2 Potpuni komplement (2) = 23+1 – 2 = 100002 – 00102 = 11102 znak!
Potpuni komplement n Primjer: znak! x = 11102=-210 n=3 b=2 Potpuni komplement (-2) = 23+1 – (-2) = 100002 – 11102 = 00102 znak!
Sabiranje sa potpunim komplementom n n n 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).
Primjer n 01012 – 00102 = 01012 + 11102 = 100112 prenos n 00012 – 00102 = 00012 + 11102 = 011112 prenos Stvarni rezultat: - Potpuni komplement(11112) = 100002 – 11112 = - 000012
Prekoračenje (overflow) n n Javlja se kada se prilikom sabiranja dva broja dobije rezultat koji ne može da stane u zadati broj bitova Pravilo: q ako se prilikom sabiranja dva pozitivna ili dva negativna broja dobije broj suprotnog znaka, dogodilo se prekoračenje. Primjer: 01012 + 01002 = 10012 + 10102 = 100112 n (5 + 4 = 9) ((-7)+(-6) = -13)
Nepotpuni komplement n n broj x n cifara baza b Nepotpuni komplement (x) = (bn+1 -1) – x
Nepotpuni komplement n Primjer: znak! x = 00102=210 n=3 b=2 Nepotpuni komplement (2) = (23+1 -1) – 2 = (100002 – 00012)– 00102 = 11012 znak!
Nepotpuni komplement n Primjer: znak! x = 11012=-210 n=3 b=2 Nepotpuni komplement (-2) = (23+1 -1)– (-2) = (100002 - 00012) – 11012 = 00102 znak!
Sabiranje sa nepotpunim komplementom n n Pravilo: A – B = A + Nepotpuni komplement(B) = Rezultat + Prenos Ako je Prenos = 1 onda je konačan rezultat = rezultat bez prenosa + 1. n Ako je Prenos = 0 onda je rezultat negativan (stvarni rezultat je nepotpuni komplement od rezultata sa negativnim predznakom).
Primjer n 01012 – 00102 = 01012 + 11012 = 1 00102 Pravi rezultat: 00102 + 1 = 00112 n prenos 00012 – 00102 = 00012 + 11012 = 011102 prenos Stvarni rezultat: - Nepotpuni komplement(11102) = 100002 – 00012 - 11102 = - 000012
Sračunavanje komplementa bez oduzimanja! n Potpuni komplement: invertovati sve bitove i dodati 1. q n Primer: 00102 => 11012 + 1 = 11102 Nepotpuni komplement: invertovati sve bitove. q Primer: 00102 => 11012
Predstavljanje cjelobrojnih brojeva u računaru n Svaka memorijska ćelija u računaru ima 8 bitova – jedan bajt. q u jedan bajt se može smestiti broj u rasponu od: n n n 0 – 255, neoznačen -128 – 127, označen, u potpunom/nepotpunom komplementu Ako je cjelobrojna vrednost veća od 128/255, uzme se više bajtova: q dva bajta – 16 bita: n n q 0 – 65535, neoznačen -32768 – 32767, označen, u potpunom/nepotpunom komplementu četiri bajta – 32 bita: n n 0 – 4. 294. 967. 295, neoznačen -2. 147. 483. 648 – 2. 147. 483. 647, označen, u potpunom/nepotpunom komplementu
Predstavljanje razlomljenih brojeva u računaru n U nepokretnom zarezu q n fiksna pozicija decimalnog zareza. U pokretnom zarezu (floating point) brojevi se predstavljaju u obliku: m ∙ be m – mantisa b – baza e – eksponent q n U memoriji računara se pamte mantisa i eksponent kao cjelobrojne označene vrednosti, najčešće sa bazom 2.
Pokretni zarez n Sabiranje odn. oduzimanje - prije sabiranja (oduzimanja) brojevi se svedu na isti eksponent: m 1∙ be + m 2 ∙ be = (m 1 + m 2) ∙ be n Množenje, odn. deljenje: (m 1∙ be 1) ∙ (m 2 ∙ be 2) = (m 1 ∙ m 2) ∙ b(e 1+e 2) n Svođenje eksponenata na istu vrijednost se svodi na smanjenje/povećanje eksponenta, uz istovremeno dijeljenje/množenje mantise bazom q u računaru se dijeljenje/množenje matise bazom 2 svodi na pomijeranje desno/lijevo bitova.
Pokretni zarez n Normalizovana mantisa: kada je b-1 ≤ |m| ≤ 1 n n n U praksi se normalizacija mantise svodi na zapis: 1, xxxx, gde se 1 podrazumijeva Tada je preciznost najveća. Pokretni zarez u računarnima, u nekim situacijama nije dovoljno precizan! q q 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.
Kodiranje alfanumeričkih informacija n Alfanumerički simboli: q q n numerički simboli (0, 1, . . . , 9) slovni simboli (A, B, . . . , Z) inteprunkcijski znakovi (, . ; : “. . . ) specijalni simboli (#, $, %, . . . ) Standardi: q q ASCII (American Standard Code for Information Interchange) ISO 8859 -1 Windows CP 1250 Unicode
Kodovi za detekciju i korekciju grešaka n n n Koncentrisaćemo se na binarni brojni sistem. Sve informacije će biti kodirane binarno! Uzrok pojave grešaka. Kodovi za detekciju grešaka q n u stanju su da detektuju grešku, ali ne i da je koriguju Kodovi za korekciju grešaka q detekcija i korekcija grešaka
Kodovi za detekciju grešaka n n Najjednostavnije je da se doda još jedan bit tako da ukupan broj jedinica u poruci bude paran ili neparan. Primer: q originalna poruka: 001101 q sa dodatnim bitom (uk. br. jedinica paran): 0011011 q q n 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
Karakter za provjeru 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 n U slučaju greške od jednog bita bilo gdje, 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
CRC kod n n n Cyclic Redundancy Character Poruka se kao niz bitova dijeli sa nekim unaprijed dogovorenim brojem, rezultat se odbacuje a ostatak pri dijeljenju se doda uz poruku. Na prijemnoj strani se primljena poruka dijeli istim brojem i ostatak se poredi sa primljenim ostatkom.
- Slides: 47