Professional Documents
Culture Documents
02 Podaci
02 Podaci
Predstavljanje podataka
2.1. Binarno kodovani decimalni brojevi
Za obavljanje numerikih operacija najpogodniji je decimalni brojni sistem. Meutim, binarni
brojni sistem je povoljniji sa stanovita jednostavnosti konstrukcije digitalne mree. Zbog toga su
razvijeni mjeoviti sistemi. Oni sadre binarno kodovane decimalne cifre i zbog toga se nazivaju
BCD (Binary Coded Decimal) kodovi.
Pri izboru koda nastoji se da on bude pogodan ne samo za brojanje, aritmetike operacije,
pretvaranje, ve i za lako otkrivanje i korigovanje eventualnih greaka pri kodovanju informacija.
Kod svih BCD sistema decimalni brojevi se predstavljaju binarnim, tako da se svaka cifra
decimalnog broja zamjenjuje odreenom grupom binarnih cifara.
Kako decimalni brojni sistem ima deset cifara u opsegu od 0 do 9, vrijedi:
23 < m = 10 < 24 .
Iz prethodne jednaine vidimo da su nam za predstavljenje 10 dekadnih cifara potrebne grupe
od po etiri binarne cifre koje nazivamo tetrade.
Postoji veliki broj kombinacija tih tetrada, odnosno mnogo BCD kodova. U praksi se koristi
relativno mali broj moguih kombinacija.
0
1
2
3
4
5
6
7
8
9
8421
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Primjer 1:
92410 = 1001 0010 0100NBCD
1000 0111 1001NBCD = 87910
Prirodni NBCD kod je teinski kod. To znai da svaka binarna cifra ima odreenu teinu pri
formiranju decimalne cifre, koja je odreena pozicijom te cifre.
0
1
2
3
4
5
6
7
8
9
2421
0000
0001
0010
0011
0100
1011
1100
1101
1110
1111
Primjer 2:
97410 = 1111 1101 0100AJKEN
0000 0010 1011AJKEN = 02510
0
1
2
3
4
5
6
7
8
9
XS3
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
Primjer 3:
7010 = 1010 0011XS3
1011 1100XS3 = 8910
0
1
2
3
4
Gray
15731
0000
0001
0011
0010
0110
Gray BCD
15731
0000
0001
0011
0010
0110
5
6
7
8
9
10
11
12
13
14
15
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
0111
0101
0100
1100
1000
Primjer 4:
10 = 15 7 + 3 1
36710 = 0010 0101 0100Gray BCD
Johnson
00000
00001
00011
00111
01111
11111
11110
11100
11000
10000
b)
c)
b)
c)
podataka. Zbog toga se koriste tzv. alfanumeriki kodovi koji koriste vie od etiri bita za
predstavljanje podataka. Alfanumeriki podaci su tipa char (character). Poto skup latinskih slova
ima 26 znakova, zatim imamo 10 cifara, to ukupno daje 36. Odavde zakljuujemo da
alfanumeriki kod mora imati vie od 5 bita.
25 < 36
Najpoznatiji alfanumeriki kodovi su:
a) ASCII (American Standard Code for Information Interchange) kod koji se sastoji od sedam bita
b) EBCDIC (Extended Binary Coded Decimal Interchange Code) kod koji se sastoji od osam bita.
Danas se najvie koristi ASCII kod, dok se EBCDIC koristi u nekim IBM raunarima.
Jedino gdje se ova dva karaktera razlikuju jeste u bit na petoj poziciji. Karakteri velikih slova
uvijek sadre nulu na petoj poziciji; karakteri malih slova uvijek sadre jedinicu u petom bitu. Na
ovaj nain se moe na lak nain vriti pretvaranje velikih slova u mala i obrnuto.
Bit 6 Bit 5
Grupa
Kontrolni karakteri
Cifre i interpunkcija
Sedmi bit u standardnom ASCII kodu je uvijek postavljen na nulu. Ovo znai da ASCII skup
karaktera zauzima polovinu moguih kodova karaktera u bajtu.
Tipom podataka real u raunaru se predstavlja jedan konaan podskup realnih brojeva. Kako
raunari posjeduju registre i memoriju ogranienog kapaciteta, ogranien je opseg i preciznost
realnih brojeva, odnosno skup brojeva koji se mogu prikazati u raunaru je diskretan i konaan za
razliku od skupa realnih brojeva koji je kontinualan i beskonaan. Zbog prirode diskretnosti postoji
uvijek praznina izmeu dva susjedna broja, tako da se moe desiti da rezultat bude ba u tom
opsegu. U tom sluaju vri se zaokruivanje na broj koji je najblii dobijenom rezultatu a koji se
moe predstaviti u raunaru.
k =0
k =1
bn 1 2 n 1 + bk 2k + b k 2 k
(1)
gdje je: n broj bita cijelog dijela, q broj bita razlomljenog dijela broja i bk vrijednost bita na ktoj poziciji. Opseg brojeva koji se mogu predstaviti u ovom formatu se kree u granicama od 2n1
do +2n 1 2 q .
1
31
znak
eksponenta
23
eksponent sa znakom
Opseg brojeva koji se mogu predstaviti na ovaj nain odreen je brojem binarnih cifara
eksponenta, dok broj binarnih cifara mantise odreuje preciznost predstavljanja i tanost raunanja.
Za predstavljanje eksponenta moe se koristiti format drugog komplementa. Prednost formata sa
pokretnim zarezom je u tome to se na ovaj nain mogu predstaviti brojevi u veoma irokom opsegu
sa zadovoljavajuom preciznou. Nedostatak je svakako brzina izvravanja aritmetikih operacija
nad ovim podacima. Naime, za realizaciju sistema koji koriste format sa pokretnim zarezom obino
je potrebno koristiti dodatni koprocesor (tzv. FPU Floating Point Unit). Iako ove jedinice danas
veoma brzo izvravaju aritmetike operacije nad podacima u formatu sa pokretnim zarezom, dosta
vremena se gubi pri komunikaciji izmeu glavne i koprocesorske jedinice. Zbog toga se ovaj format
ne koristi u sistemima koji imaju kritinu brzinu izvravanja (upravljaki sistemi koji zahtijevaju
obradu signala u realnom vremenu).
Danas postoji veliki broj razliitih formata za predstavljanje realnih brojeva u formatu sa
pokretnim zarezom. Prethodno razmatranje predstavlja samo opis koncepta ovakve predstave
realnih brojeva. Danas najee korien standard za predstavljanje brojeva u formatu sa pokretnim
zarezom jeste format IEEE 7542. Pored ovog formata (koji predstavlja standard u veini dananjih
http://en.wikipedia.org/wiki/IEEE_754
raunarskih sistema) postoje jo dva esto koriena formata: IBM Floating Point format3 i VAX
Floating Point format4. Za detaljnije informacije italac moe da konsultuje odgovarajuu
literaturu.
2.5. Zadaci
Zadatak 1. Koliko se razliitih NBCD brojeva moe predstaviti sa 16 bita?
Rjenje:
Za predstavljanje jedne decimalne cifre korienjem NBCD koda potrebne su etiri binarne
cifre. S obzirom da nam je na raspolaganju 16 bita, zakljuujemo da moemo predstaviti
etvorocifren broj. Najvei etvorocifren broj je 9999, pa je opseg brojeva koji se mogu predstaviti
od 0 do 9999, a to je ukupno 10000 razliitih brojeva.
Zadatak 2. Predstaviti heksadecimalni broj 3ADFH u NBCD, XS3, GrayBCD i Johnson kodu.
Rjeenje:
Sada je potrebno decimalni broj predstaviti odgovarajuim kodom korienjem tabela kodova.
15071 = 0001 0101 0000 0111 0001NBCD
15071 = 0100 1000 0011 1010 0100XS3
15071 = 0001 0111 0000 0100 0001GrayBCD
15071 = 00001 11111 00000 11100 00001Johnson
Zadatak 3. Sljedee decimalne brojeve predstaviti u NBCD kodu i izvriti naznaene operacije:
47 + 35; 59 + 38; 275 + 641.
Rjeenje:
0100 0111 47
+
0011 0101 35
-----------------------------0111 1100
+
0110
----------------------1000 0010 82
0101 1001 59
+
0011 1000 38
-----------------------------1001 0001
+
0110
----------------------1001 0111 97
Kodne kombinacije oznaene crvenom bojom predstavljaju korekcione tetrade koje se koriste
za korekciju zbira pri NBCD sabiranju.
3
4
http://en.wikipedia.org/wiki/IBM_Floating_Point_Architecture
http://www.codeproject.com/KB/applications/libnumber.aspx
Zadatak 4. a) Koliki je minimalan broj bita potreban za binarno predstavljanje brojeva 52, 72, 130 i
256?
b) Izraunati ABH+CDH, ABCH+DEFH, 98A5H-4BBDH.
c) Napisati najvei pozitivan i najmanji negativan broj koji se moe predstaviti sa 32 bita.
d) Izvriti sljedee raunske operacije primjenom metode drugog komplementa: 99-75, -46+25,
-110-13.
e) Koliko se osmobitnih memorijskih lokacija nalazi u opsegu od 0000H do FFFFH?
Rjeenje:
potrebno je 26=64
potrebno je 27=128
potrebno je 28=256
potrebno je 9 bita
a)
52
72
130
256
b)
ABH
+
CDH
---------------178H
c)
d)
01100011
+
10110101
---------------------(1)00011000
10010010
+
11110011
---------------------(1)10000101
6 bita
7 bita
8 bita
ABCH
+
DEFH
-----------------18ABH
(+99)
(-75)
(+24)
98A5H
4BBDH
------------------4CE8H
232-1-1=231-1=2,147,483,647
-232-1=-231=-2,147,483,648
11010010
+
00011001
---------------------11101011
(-46)
(+25)
(-21)
(-110)
(-13)
(-123)
e) S obzirom da opseg 0000H do FFFFH predstavlja opseg 16-bitnog broja, moemo da zakljuimo
da je broj memorijskih lokacija jednak 216=65,536. Prema tome, u ovom opsegu se nalazi ukupno
65,536 osmobitnih memorijskih lokacija (bajtova), ili kako je 210=1,024=1K, imamo da je
216=26210=26K=64K.
Kako se radi o osmobitnim memorijskim lokacijama imamo ukupno 64KB.
Zadatak 5. Heksadecimalni broj C3H predstaviti u formatima I1Q7, I2Q6 i I3Q5, a zatim odrediti
decimalnu vrijednost broja za svaki od formata.
Rjeenje:
Zadatak 6. Decimalni broj 128.75 predstaviti u formatu sa pokretnim zarezom u binarnom brojnom
sistemu koristei 32-bitnu reprezentaciju.
Rjeenje:
Dati decimalni broj je najprije potrebno pretvoriti u binarni prikaz, a zatim izvriti
normalizaciju:
128.75=10000000.11=0.1000000011E+8.
Ako sada ovakav normalizovani oblik predstavimo u 32-bitnom formatu sa pokretnim zarezom
dobijamo:
znak
mantise
0|00001000|00000000000001000000011
eksponent
mantisa
http://www.h-schmidt.net/FloatApplet/IEEE754.html