Digitalna tehnika Brojni sistemi Prof. Biljana Vidaković

Download Report

Transcript Digitalna tehnika Brojni sistemi Prof. Biljana Vidaković

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 i binarni brojni sistemi

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 +
+ a-210-2+ ...+ a-m10-m


...+ a1 101 + a0 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 + ...+ a1 b1 + 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 2n-1 + an-2 2n-2 +
a-22-2+ ...+ a-m2-m


...+ a1 21 + a0 20 + a-12-1 +
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

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
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 8n-1 + an-2 8n-2 +
a-28-2+ ...+ a-m8-m


...+ a1 81 + a0 80 + a-18-1 +
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 +
a-216-2+ ...+ a-m16-m


...+ a1 161 + a0 160 + a-116-1 +
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 o1
r1 : b = r2 i ostatak o2
r2 : b = r3 i ostatak o3
...
rn : b = 0 i ostatak on
---------------------------------rezultat: on ... o3 o2 o1
Konverzije brojnih sistema

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
Konverzija decimalnog broja u binarni i obrnuto



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
0,25 ∙ 2 = 0,5 tj. cjelobrojni dio 0 i razlomljeni dio 0,5
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

(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



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
-----------------------
Konverzija oktalnih brojeva u decimalne i obrnuto

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

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
1110 0110 1010
2
0010
= 11100110101000102
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
prva cifra = 9 iz tabele
144 cifra = E iz
druga
3584 + 4096
treća cifratabele
= 1 iz tabele
783510
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
1A0 x 13
-------4E0
+ 1A0
----------1EE0
583 : 11 = 53
---58
-55
---33
-33
---0
Predstavljanje cjelobrojnih brojeva
u 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:
znak!
x = 00102=210
n=3
b=2
Potpuni komplement (2) = 23+1 – 2 =
100002 – 00102 = 11102
znak!
Potpuni komplement

Primjer:
znak!
x = 11102=-210
n=3
b=2
Potpuni komplement (-2) = 23+1 – (-2) =
100002 – 11102 = 00102
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
prenos

00012 – 00102 = 00012 + 11102 = 011112
prenos
Stvarni rezultat: - Potpuni komplement(11112) =
100002 – 11112 = - 000012
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
10012 + 10102 = 100112

(5 + 4 = 9)
((-7)+(-6) = -13)
Nepotpuni komplement




broj x
n cifara
baza b
Nepotpuni komplement (x) = (bn+1 -1) – x
Nepotpuni komplement

Primjer:
znak!
x = 00102=210
n=3
b=2
Nepotpuni komplement (2) = (23+1 -1) – 2 =
(100002 – 00012)– 00102 = 11012
znak!
Nepotpuni komplement

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


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).
Primjer

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
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 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 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 – mantisa
b – baza
e – 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.