Upload
blaze-phelps
View
118
Download
2
Embed Size (px)
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.