01 - Kod, Kodiranje I Dekodiranje

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

2

2.1

Cuvanje podataka
Kod, kodiranje i dekodiranje

Neka je dat skup B od n objekata: B = {b1 , b2 , . . . , bn } i azbuka od m simbola: A = {a1 , a2 , . . . , am } . (2) (1)

Neka je A skup svih rei azbuke A, i svakom objektu iz B dodelimo po c jednu re azbuke A. Dobijeni skup rei K A nazivamo kod podataka B u c c azbuci A. Iz prethodnog je jasno da kod moe biti jednoznaan ili vieznaan z c s c c u zavisnosti od toga da li su rei u K medusobno razliite ili ne. Takode c kod moe biti ravnomeran ili neravnomeran u zavisnosti od toga da li su sve z rei u K iste duine ili ne. Preciznije, ako predpostavimo da sve rei koje c z c ine kod imaju istu duinu rei od q simbola, tada ukupan broj rei duine c z c c z q q od m simbola je m . Kod koji je sastavljen od svih rei naziva se potpuni c kod inae je nepotpuni kod. Cesto se za kod ije sve rei imaju duinu q c c c z kae da je to q mesni kod. Dobar primer koda je etvoromesni nepotpuni z c ravnomerni, nazvan 8421 kod: Na primer, ako je neophodno kodirati broj Kod 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Cifra 0 1 2 3 4 5 6 7 8 9

Tabela 1: 8421 kod

97721 tada je 8421 kod oblika: 97721 1001 0111 0111 0010 0001 (3)

Ideja ravnomernosti i istomesnosti je duboko ukorenjena u Raunarskim c naukama tako da se drugi tipovi kodova i ne koriste.

2.2

Binarni kod

Nije teko pretpostaviti da se u naem skupu B iz (1) mogu nai sve foneme, s s c cifre, znakovi interpunkcije i slino. Koristei rei binarne azbuke duine 7 c c c z ili 8 dolo se do kodova: s - ASCII - American Standard Code for Information Iterchange; - EBCIDIC - Extended Binary Coded Decimal Intercange Code. gde je ASCII sedmo mesni kod, dok je EBCIDIC osmo mesni kod. Ovi kodovi su tako birani da im simboli staju u jedan bajt. Na primer, broj -1.5 u ASCII kodu ima sledei oblik: c 1.5 45 49 46 53 0101101 0110001 0101110 0110101 (4)

Brojni sistemi

Brojni sistem je skup pravila nad nekom azbukom denisanih tako da pojednostave kvantitativno prikazivanje nekog svojstva. Dele se na pozicione i nepozicione.

3.1

Nepozicioni brojni sistemi

Ima ih vie a osnovna karakteristika im je da denisani simbol zadrava s z vrednost bez obzira gde se u broju nade. Tipini predstavnik je rimski brojni c sistem ije su cifre: uz pravila rananja: c c 1. niz istih cifara predstavlja brojnu vrednost jednaku njihovom zbiru; 6

Rimska cira Dekadna vrednost

I 1

V 5

X 10

L 50

C 100

D 500

M 1000

Tabela 2: 8421 kod 2. dve cifre od kojih se manja nalazi levo od vee, daju vrednost koja se c dobija kada vrednost manje oduzme od vrednosti vee cifre; c 3. dve cifre od kojih se manja nalazi desno od vee, daju vrednost koja se c dobija kada se vednosti manje i vee saberu. c Na primer: M CM LXXV III 1978 (5)

3.2

Pozicioni brojni sistem

Vrednost cifre zavisi od mesta na kome se nalaze u broju. Neka je S skup svih razliitih cifara brojnog sistema i neka ih ima N > 1. Broj N zovemo c osnovom brojnog sistema. Brojna vrednost X u pozicionom brojnom sistemu sa osnovom N pie se kao niz cifara. Vai da je vrednost X napisana kao: s z X xn xn1 xn2 x1 x0 .x1 xm+1 xm jednaka:
n

(6)

XN =
i=m

xi N i

(7)

3.2.1

Decimalni brojni sistem

Decimalni brojevni sistem je zasnovan na skupu znakova {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} , koji je i skup brojeva. Predstavimo 472: 472 = 400 + 70 + 2 = 4 100 + 7 10 + 2 1 7 (9) (8)

= 4 102 + 7 101 + 2 100 odakle sledi da je pozicioniranje brojeva direktno povezano sa vrednou koju sc nose. Dekadni brojni sistem je duboko utkan u osnove ljudske civilizacije. Nema razloga da se posebno sa njim bavimo. 3.2.2 Oktalni brojni sistem

Oktalni brojevni sistem je zasnovan na skupu {0, 1, 2, 3, 4, 5, 6, 7}. Jednostavno se oktalni broj prevodi u dekadni: 4728 = 4 82 + 7 81 + 2 80 = 4 64 + 7 8 + 2 1 = 256 + 56 + 2 = 31410 gde koristimo osobine pozicionog brojnog sistema: cifre na odredenim pozicijama su odredene vrednosti. Zanimljivije je pokazati kako se od dekadnog broja dobija oktalni broj. Potrebno je koristiti delenje po modulu1 8: 47210 472 mod 8 0 59 mod 8 3 7 mod 8 7 odakle sledi da je 47210 = 7308 . Dakle, zanimaju nas samo ostaci pri delenju sa odgovarajuom osnovom u koju prevodimo broj. c 3.2.3 Binarni brojni sistem (11) (10)

Binarni brojevni sistem je zasnovan na skupu {0, 1}. Slino kao kod oktalnih c brojeva, binarni broj 11100110000 u decimalnom zapisu jednak je: 111001100002 = 1 210 + 1 29 + 1 28 + 0 27 +
1

Delenje po modulu je delenje u kome se belei ostatak pri delenju z

0 26 + 1 25 + 1 24 + 0 23 + 0 22 + 0 21 + 0 20 = 1 210 + 1 29 + 1 28 + 1 25 + 1 24 = 1024 + 512 + 256 + 32 + 16 = 1840 Sledi da je 111001100002 = 18402 . Koristei delenje po modulu 2, jednoc stavno se dolazi do binarnog oblika broja. 47210 472 mod 2 0 236 mod 2 0 118 mod 2 0 59 mod 2 1 29 mod 2 1 14 mod 2 0 7 mod 2 1 3 mod 2 1 1 mod 2 1 odakle sledi da je 47210 = 1110110002 . Uoimo da smo posle decimalnog c brojnog sistema, predstavili oktalni a ne binarni. Razlog je jednostavan, jer se sa binarnog jednostavno prelazi na oktalni i obrnuto: 1110110002 = 111011000 = 7308 gde se grupiu po tri binarne cifre sdesna na levo. Pri tome je: s 07 = 0002 17 = 0012 27 = 0102 37 = 0112 (14) (13) (12)

47 = 1002 57 = 1012 67 = 1102 77 = 1112 Primetno je da oktalni brojevni sistem nije pogodan za rad na bajtovskom nivou, koji ima osam bitova, odnosno moe sadrati osmocifreni binarni broj. z z Zato je pogodniji: 3.2.4 Heksadekadni brojni sistem

Heksadekadni brojevni sistem je zasnovan na 16 simbola {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F } Slova A, B, C, D, E, F imaju redom vrednosti 10, 11, 12, 13, 14, 15. U skladu sa prethodnim F EF A16 je decimalni broj: F EF A16 = F 163 + E 162 + F 161 + A 160 = 15 4096 + 14 256 + 15 16 + 10 1 = 61440 + 3584 + 240 + 10 = 65274 Ako iskoristimo da je: 010 = 00002 110 = 00012 210 = 00102 310 = 00112 410 = 01002 510 = 01012 610 = 01102

10

710 = 01112 810 = 10002 910 = 10012 A10 = 10102 B10 = 10112 C10 = 11002 D10 = 11012 E10 = 11102 F10 = 11112 tada je F EF A16 = 11111110111110102 = 1773728 .

3.3

Prevodenje brojeva

Neka je data celobrojna vrednost X u brojnom sistemu sa osnovom N1 u obliku: n XN1 xn xn1 xn2 x1 x0 =
i=0 i xi N1

(15)

Isti broj u sistemu sa osnovom N2 ima sledei oblik: c


l

XN2 yl yl1 yl2 y1 y0 =


i=0

i yi N2

(16)

Podelimo broj X iz (16) sa sopstvenom osnovom N2 izvodei operacije u c sistemu sa osnovom N1 : y0 X = + N2 N2


l i1 xi N2 = i=1

y0 + X1 N2

(17)

gde je X1 ceo broj, dok je y0 ostatak pri delenju sa osnovom N2 . Pri tome se sve operacije izvode u sistemu sa osnovom N1 . Postupak se nastavlja sve dok se ne iscrpi osnova N2 preciznije sve dok ne dobijemo l brojeva. U sutini s prevodenje celog broja X iz brojnog sistema N1 , u brojni sistem sa osnovom

11

N2 , moe se koristiti interativna formula: z Xi yi = Xi+1 + , N2 N2 i = 0, 1, . . . , l (18)

Xi gde je Xi+1 celi deo kolinika N2 , X0 = X, a sve aritmetike operacije treba c c izvravati u brojnom sistemu sa osnovom N1 . s Slino se moe pokazati i za razlomljene brojeve, jedina razlika je to se c z s umesto delenja koristi mnoenje. Slino se moe dati rekurentna veza: z c z

Xi N2 = y(i+1) + X(i+1) ,

i = 0, 1, . . .

(19)

gde je y(i+1) celobrojni deo, a X(i+1) razlomljeni deo proizvoda Xi N2 . Za i = 0 treba uzeti da je X0 = X. z z Kod prevodenja razlomljenih brojeva moe se dogoditi da se broj ne moe prevesti na konanom broju cifara. Pokaimo konano prevodenje broja 67.87510 c z c u binarni broj. Prvo prevedimo ceo deo: 6710 67 mod 2 1 33 mod 2 1 16 mod 2 0 8 mod 2 0 4 mod 2 0 2 mod 2 0 1 mod 2 1 odakle sledi da je 6710 = 10000112 . Za razlomljeni deo koristimo mnoenje i z preuzimanje cifara koje postanu celi brojevi: 0.87510 0.875 2 0 0.75 2 1 0.5 2 1 02 1 (21) (20)

12

odakle sledi da je 0.87510 = 0.1112 . Konano sabiranjem se dobija: c 67.875 = 6710 + 0.87510 = 10000112 + 0.1112 = 1000011.1112 (22)

13

You might also like