Digitalna tehnika

Preview:

DESCRIPTION

Digitalna tehnika. Brojni sistemi. Prof. Biljana Vidaković. Brojni sistemi. Brojni sistemi su sistemi simbola za označavanje skupova. Za osnovu brojnog sistema može se uzeti bilo koji broj veći od 1. - PowerPoint PPT Presentation

Citation preview

Digitalna tehnika

Brojni sistemi

Prof. Biljana Vidaković

Brojni sistemi

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:

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 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.

Opšti oblik broja u decimalnom brojnom sistemu:

A = an 10n + an-1 10n-1 + an-2 10n-2 + ...+ a1 101 + a0 100 + a-110-1 +

a-210-2+ ...+ a-m10-m

a – koeficijenti sa vrijednostima od 0-9 Opšti oblik za broj sa n cijelih i m razlomljenih mjesta:

A = an bn + an-1 b

n-1 + an-2 bn-2 + ...+ a1 b

1 + a0 b0 + a-1b

-1+ a-2b-2

+ ...+ a-mb-m

b – osnova (baza) n+1 – broj cjelobrojnih cifara m – broj decimala

Decimalni i binarni brojni sistemi

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.

Opšti oblik broja u binarnom brojnom sistemu:

A = an 2n + an-1 2

n-1 + an-2 2n-2 + ...+ a1 2

1 + a0 20 + a-12

-1 +

a-22-2+ ...+ a-m2-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

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

Decimalni i binarni brojni sistemi-primjeri

Oktalni i heksadecimalni brojni sistemi

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.

Opšti oblik broja u oktalnom brojnom sistemu:

A = an 8n + an-1 8

n-1 + an-2 8n-2 + ...+ a1 8

1 + a0 80 + a-18

-1 +

a-28-2+ ...+ a-m8-m

a – koeficijenti sa vrijednostima od 0 do 7. Oktalni brojevi manji od nule se vrlo rijetko upotrebljavaju.

Oktalni i heksadecimalni brojni sistemi

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.

Opšti oblik broja u oktalnom brojnom sistemu:

A = an 16n + an-1 16n-1 + an-2 16n-2 + ...+ a1 161 + a0 160 + a-116-1 +

a-216-2+ ...+ a-m16-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

Opšta formula cjelobrojni dio:

cjelobrojni dio (a) u novu bazu b: a : b = r1 i ostatak o1r1 : b = r2 i ostatak o2r2 : b = r3 i ostatak o3...rn : b = 0 i ostatak on----------------------------------rezultat: on ... o3 o2 o1

Opšta formula razlomljeni dio:

razlomljeni dio (a) u novu bazu b:

a ∙ b = c1,r1 tj. cjelobrojni dio c1 i razlomljeni dio r1

r1 ∙ b = c2,r2 tj. cjelobrojni dio c2 i razlomljeni dio r2

r2 ∙ b = c3,r3 tj. cjelobrojni dio c3 i razlomljeni dio r3

...

rn ∙ b = cn,0 tj. cjelobrojni dio cn i razlomljeni dio 0

------------------------------------------

Rezultat: c1 c2 ... cn Problem: ako razlomljeni dio ne bude 0

Konverzije brojnih sistema

Broj 37,62510 konvertovati u binarni brojni sistem.

37 : 2 = 18 i ostatak 118 : 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,06250,625 ∙ 2 = 1,25 tj. cjelobrojni dio 1 i razlomljeni dio 0,250,25 ∙ 2 = 0,5 tj. cjelobrojni dio 0 i razlomljeni dio 0,50,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

(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 decimalnog broja u binarni i obrnuto

Konverzija binarnih brojeva u oktalne i obrnuto 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 101 111 = 65578

6 5 5 7

----------------------- Oktalni broj se takođe jednostavno pretvara u binarni Primjer:

701528 = 111 000 001 101 010 = 1110000011010102

7 0 1 5 2

-----------------------

Broj 64310 konvertovati u oktalni brojni sistem.

1 2 0 3

643

-512 = 1 83

131

-128 = 2 82

3

- 0 = 0 81

3

- 3 = 3 80

0

rezultat: 12038

Konverzija oktalnih brojeva u decimalne i obrnuto

Konverzija oktalnih brojeva u decimalne i obrnuto

Primjer

(1267)8 = 7 ∙ 80 = 7

+ 6 ∙ 81 = 48

+ 2 ∙ 82 = 128

+ 1 ∙ 83 = 512

-------------

69510

rezultat 69510

Konverzija binarnih brojeva u heksadecimalne i obrnuto 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

= 9A1F16

Heksadecimalni broj se takođe jednostavno pretvara u binarni Primjer:

E6A216 = E 6 A 2 = 11100110101000102

1110 0110 1010 0010

Konverzija heksadecimalnih brojeva u decimalne i obrnuto 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: 2ED

Primjer: Broj 1E9B16 konvertovati u decimalni brojni sistem.

1 E 9 B 16

nulta cifra = B iz tabele 11

783510

prva cifra = 9 iz tabele 144druga cifra = E iz tabele 3584treća cifra = 1 iz tabele + 4096

heksadecimalni oktalni

Preko binarnog brojnog sistema. Primjer:

A316 = 101000112

0101000112 = 2438

Računske operacije – binarni brojni sistem Sabiranje:

Oduzimanje:

Računske operacije – binarni brojni sistem Množenje:

Deljenje: nulom nije dozvoljeno jedinicom - trivijalno

Računske operacije – binarni brojni sistem 11

+11

---

110

110

-101

---

001

110 x 11

--------

110

+ 110

-----------

10010

1001 : 11 = 11

----

100

-011

-----

0011

-0011

------

0000

Računske operacije – oktalni brojni sistem 447 +652 ---- 1321

54,3

-45,4

----

6,7

123 x 21

--------

123

+ 246

-----------

2603

2603 : 21 = 123

----

26

-21

----

50

-42

----

63

-63

-----

0

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

2C

-25

----

7

53 x 11

--------

53

+ 53

-----------

583

583 : 11 = 53

----

58

-55

----

33

-33

----

0

1A0 x 13

--------

4E0

+ 1A0

-----------

1EE0

Predstavljanje cjelobrojnih brojevau računaru Svaka memorijska ćelija u računaru ima 8 bitova – jedan

bajt. 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: dva bajta – 16 bita: 0 – 65535 četiri bajta – 32 bita: 0 – 4.294.967.295

Predstavljanje negativnih brojeva Preko znaka i apsolutne vrijednosti

komplikovan algoritam za sabiranje i oduzimanje Preko komplementa

jednostavan algoritam za sabiranje i oduzimanje

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).

Potpuni komplement

broj x n cifara baza b Potpuni omplement (x) = bn+1 – x

Potpuni komplement

Primjer:

x = 00102=210

n = 3

b = 2

Potpuni komplement (2) = 23+1 – 2 =

100002 – 00102 = 11102

znak!

znak!

Potpuni komplement

Primjer:

x = 11102=-210

n = 3

b = 2

Potpuni komplement (-2) = 23+1 – (-2) =

100002 – 11102 = 00102

znak!

znak!

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).

Primjer

01012 – 00102 = 01012 + 11102 = 100112

00012 – 00102 = 00012 + 11102 = 011112

Stvarni rezultat: - Potpuni komplement(11112) =

100002 – 11112 = - 000012

prenos

prenos

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.

Primjer:

01012 + 01002 = 10012 (5 + 4 = 9)

10012 + 10102 = 100112 ((-7)+(-6) = -13)

Nepotpuni komplement

broj x n cifara baza b Nepotpuni komplement (x) = (bn+1 -1) – x

Nepotpuni komplement

Primjer:

x = 00102=210

n = 3

b = 2

Nepotpuni komplement (2) = (23+1 -1) – 2 =

(100002 – 00012)– 00102 = 11012

znak!

znak!

Nepotpuni komplement

Primjer:

x = 11012=-210

n = 3

b = 2

Nepotpuni komplement (-2) = (23+1 -1)– (-2) =

(100002 - 00012) – 11012 = 00102

znak!

znak!

Sabiranje sa nepotpunim komplementom Pravilo:

A – B = A + Nepotpuni komplement(B) =Rezultat + Prenos

Ako je Prenos = 1 onda jekonačan rezultat = rezultat bez prenosa + 1.

Ako je Prenos = 0 onda je rezultat negativan (stvarni rezultat je nepotpuni komplement od rezultata sa negativnim predznakom).

Primjer

01012 – 00102 = 01012 + 11012 = 1 00102

Pravi rezultat: 00102 + 1 = 00112

00012 – 00102 = 00012 + 11012 = 011102

Stvarni rezultat: - Nepotpuni komplement(11102) =

100002 – 00012 - 11102 = - 000012

prenos

prenos

Sračunavanje komplementa bez oduzimanja! Potpuni komplement: invertovati sve bitove i

dodati 1. Primer: 00102 => 11012 + 1 = 11102

Nepotpuni komplement: invertovati sve bitove. Primer: 00102 => 11012

Predstavljanje cjelobrojnih brojevau 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 cjelobrojna 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

Predstavljanje razlomljenih brojeva u računaru U nepokretnom zarezu

fiksna pozicija decimalnog zareza. U pokretnom zarezu (floating point)

brojevi se predstavljaju u obliku: m ∙ be

m – mantisab – bazae – eksponent

U memoriji računara se pamte mantisa i eksponent kao cjelobrojne označene vrednosti, najčešće sa bazom 2.

Pokretni zarez

Sabiranje odn. oduzimanje - prije sabiranja (oduzimanja) brojevi se svedu na isti eksponent:m1∙ be + m2 ∙ be = (m1 + m2) ∙ be

Množenje, odn. deljenje:(m1∙ be1) ∙ (m2 ∙ be2) = (m1 ∙ m2) ∙ b(e1+e2)

Svođenje eksponenata na istu vrijednost se svodi na smanjenje/povećanje eksponenta, uz istovremeno dijeljenje/množenje mantise bazom u računaru se dijeljenje/množenje matise bazom 2 svodi na

pomijeranje desno/lijevo bitova.

Pokretni zarez

Normalizovana mantisa: kada je b-1 ≤ |m| ≤ 1

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! razlog je taj što je baza 2, pa konverzija decimalnih brojeva

u oblik m ∙2e ne daje okrugao broj.

greška je veoma mala, ali se uzastopnim operacijama može akumulirati.

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

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

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

Karakter za provjeru bloka

b1 b2 b3 b4 p1

b5 b6 b7 b8 p2

p3 p4 p5 p6 p7 U slučaju greške od jednog bita bilo gdje, moguće je

detektovati i korigovati grešku:

b1 b2 b3 b4 p1

b5 b6 b7 b8 p2

p3 p4 p5 p6 p7

CRC kod

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.

Recommended