You are on page 1of 29

Uvod u organizaciju raunara

vebe - as 6: BCD

Binarni kodovi dekadnih cifara

Zbog problema sa preciznim predstavljanjem dekadnih razlomljenih brojeva u binarnom sistemu pojavila se ideja o kodiranju pojedinanih dekadnih cifara binarnim brojevima.
Uvod u organizaciju raunara 2

Binarni kodovi dekadnih cifara


Za kodiranje dekadnih cifara binarnim brojevima potrebne su bar etiri binarne cifre. Postoji vie naina da se jednoj dekadnoj cifri dodeli binarni kod.

Uvod u organizaciju raunara

Binarni kodovi dekadnih cifara

Najvaniji zahtevi koje kodovi treba da zadovolje su:


Jednoznanost Najveoj dekadnoj cifri odgovara kod koji ima najveu vrednost. Ouvanje parnosti Komplementarnost kodovi cifara a i b za koje vai a+b=9 su komplementarni Kod je teinski ako se vrednost dekadne cifre u tom kodu dobija kao zbir proizvoda vrednosti binarnih cifara i vrednosti pozicija na kojima se one nalaze.
Uvod u organizaciju raunara 4

Neki binarni kodovi dekadnih cifara


Dekadna cifra
0 1

Binarni kod
8421 0000 0001 2421 0000 0001 5421 0000 0001 753-6 0000 1001 84-2-1 0000 0111 Viak 3 0011 0100 Ciklini 0001 0101

2
3 4 5 6 7 8 9

0010
0011 0100 0101 0110 0111 1000 1001

0010
0011 0100 1011 1100 1101 1110 1111

0010
0011 0100 1000 1001 1010 1011 1100

0111
0010 1011 0100 1101 1000 0110 1111

0110
0101 0100 1011 1010 1001 1000 1111

0101
0110 0111 1000 1001 1010 1011 1100

0111
1111 1110 1100 1000 1001 1011 0011
5

Uvod u organizaciju raunara

Neoznaeni binarno kodirani dekadni brojevi

Binarno kodirani zapis neoznaenog dekadnog broja u nekom kodu se dobija tako to se binarno kodira u odgovarajuem kodu svaka od njegovih cifara.

Uvod u organizaciju raunara

Primeri

Broj 5384 moemo zapisati u razliitim kodovima na sledei nain:


0101 0011 1000 0100 1000 0110 1011 0111 1011 0101 1000 0100 (8421) (Viak 3) (84-2-1)
7

Uvod u organizaciju raunara

Oznaeni binarno kodirani dekadni brojevi

Oznaeni binarno kodirani dekadni brojevi se zapisuju na dva naina:


Znak i apsolutna vrednost U potpunom komplementu pri emu se prvo nae potpuni komplement broja u sistemu sa osnovom 10, pa se zatim izvri kodiranje.
Uvod u organizaciju raunara 8

Nepakovani zapis

Binarno kodirani dekadni brojevi se mogu koristiti kako za zapis brojeva, tako i za zapis znakova. Iz tog zahteva proistiu neke specifinosti zapisa brojeva. Kod raunara koji koriste ASCII kod u nepakovanom zapisu broja se u polubajt vee teine upisuje cifra 5 koja oznaava da je u bajtu zapisana cifra, a u polubajtu manje teine se zapisuje BCD zapis cifre u odgovarajuem kodu.
Uvod u organizaciju raunara 9

Nepakovani zapis
BCD brojevi se u raunaru obino zapisuju u obliku znak i apsolutna vrednost. Znak se zapisuje u polubajtu vee teine (umesto cifre 5) poslednjeg bajta i to kao binarno zapisana heksadekadna cifra A za pozitivne brojeve, a B za negativne.

Uvod u organizaciju raunara 10

Primer

+896312 58 59 56 53 51 A2 -896312 58 59 56 53 51 B2

Uvod u organizaciju raunara

11

Pakovani zapis
Ukoliko se koriste samo brojani podaci dolazi do nepotrebnog troenja prostora, jer se ponavlja vrednost 5 u svakom polubajtu vee teine, osim kod poslednjeg bajta. Zato se uvodi pakovani zapis BCD brojeva.

Uvod u organizaciju raunara 12

Pakovani zapis

Kod pakovanog zapisa se u svakom polubajtu, osim u poslednjem, uva neka cifra broja. U poslednjem polubajtu zapisa, uva se znak broja prema prethodnom dogovoru. Poto se koristi ceo broj bajtova, u sluaju zapisa broja sa parnim brojem cifara u vodei polubajt se upisuje 0.
Uvod u organizaciju raunara 13

Primeri

+896312 -896312 +56421 -56421

08 96 31 2A 08 96 31 2B 56 42 1A 56 42 1B

Uvod u organizaciju raunara

14

Decimalna aritmetika
Nepakovani zapis brojeva se najee koristi pri ulazno-izlaznim operacijama za direktno unoenje brojeva, dok se u aritmetikim operacijama koristi pakovani zapis. Operacije sa BCD brojevima su sporije u odnosu na operacije sa binarnim brojevima zbog specifinosti zapisa.

Uvod u organizaciju raunara 15

Promena znaka

Poto su BCD brojevi u raunaru zapisani u obliku znak i aspolutna vrednost promena znaka je jednostavna. Samo se menja vrednost poslednjeg polubajta. 08 96 31 2A 08 96 31 2B
Uvod u organizaciju raunara 16

Sabiranje i oduzimanje

Pri sabiranju i oduzimanju vae opta pravila sabiranja i oduzimanja celih brojeva u zapisu znak i apsolutna vrednost. To znai da se operacije nad oznaenim brojevima mogu svesti na operacije nad neoznaenim brojevima.
Uvod u organizaciju raunara 17

Sabiranje i oduzimanje
Sabiranje BCD brojeva se vri u dve faze. U prvoj fazi se BCD zapisi cifara sabiraka sabiraju kao neoznaeni celi etvorocifreni binarni brojevi. Ako se javi prekoraenje, ono se prenosi kao jedinica koja se dodaje zbiru narednih dekadnih cifara. Ovi prenosi se pamte zbog upotrebe u drugoj fazi. U drugoj fazi se vre korekcije koje zavise od koda u kome smo predstavljali dekadne cifre.

Uvod u organizaciju raunara 18

Sabiranje i oduzimanje

Oduzimanje se moe izvriti na dva naina:


po slinom principu kao i sabiranje, pri emu se u obe faze umesto sabiranja vri oduzimanje, i Kao sabiranje u potpunom komplementu umanjenika sa umanjiocem kome je promenjen znak.
Uvod u organizaciju raunara 19

Sabiranje u kodu 8421

Prva faza je nezavisna od koda u kome su zapisane dekadne cifre. Neka je n maksimalan broj cifara sabiraka. Neka su pi prenosi u prvoj fazi sabiranja sa dekadnog mesta i-1 na mesto i, a pi odgovarajui prenosi u drugoj fazi. Vai p0=0 i p0=0. Druga faza se sastoji iz n koraka u kojima se zdesna na levo grupama od po etiri binarne cifre rezultata prve faze dodaju korekcije i rauna prenos za sledei korak.
Uvod u organizaciju raunara 20

Sabiranje u kodu 8421

U i-tom koraku radimo:


Neka je c3c2c1c0 i-ta grupa od etiri binarne cifre gledano zdesna na levo ti=c3c2c1c0 + pi Ako je pi+1 = 1 ili ti (1010)2 onda ovoj grupi cifara dodajemo korekciju (0110)2 i pri tome odreuemo prenos pi+1.

Ako je pn=1 ili pn=1 dolo je do prekoraenja.


Uvod u organizaciju raunara 21

Primer

X= -23492 Y=-5189 X+Y=-28681 23 49 2B + 05 18 9B = 28 68 1B

-X 0010 0011 0100 1001 0010 -Y 0000 0101 0001 1000 1001 p 0 0 0 1 0 0 S1 0010 1000 0110 0001 1011 p 0 0 0 0 1 0 k 0000 0000 0000 0110 0110 -S 0010 1000 0110 1000 0001 =>S=-28681
Uvod u organizaciju raunara 22

Oduzimanje u kodu 8421

U prvoj fazi se BCD zapisi cifara umanjenika i umanjioca oduzimaju kao neoznaeni celi etvorocifreni binarni brojevi. Ako se javi potreba za pozajmicom, ona se prenosi kao jedinica koja se oduzima od razlike narednih dekadnih cifara. Ove pozajmice se pamte zbog upotrebe u drugoj fazi i oznaavaju se sa pi. U drugoj fazi se zdesna nalevo posmatraju po etiri binarne cifre c3c2c1c0 rezultata prve faze i od njih se oduzima (0110)2 ako vai pi+1 = 1.
Uvod u organizaciju raunara 23

Primer

X=-52629 Y=2634 X+Y=-49995 52 62 9B + 02 63 4A = 49 99 5B

-X 0101 0010 0110 0010 1001 Y 0000 0010 0110 0011 0100 p 0 1 1 1 0 0 S1 0100 1111 1111 1111 0101 K 0000 0110 0110 0110 0000 -S 0100 1001 1001 1001 0101
Uvod u organizaciju raunara 24

Sabiranje u kodu viak 3


Neka vae oznake koje smo koristili za kod 8421. I u kodu viak 3 se druga faza izvodi u n koraka gde se u svakom koraku zdesna na levo dodaju korekcije grupama od po etiri binarne cifre rezulata prve faze.

Uvod u organizaciju raunara 25

Sabiranje u kodu viak 3

U i-tom koraku radimo:


Neka je c3c2c1c0 i-ta grupa od etiri binarne cifre gledano zdesna na levo Ako je pi+1 = 1 onda ovoj grupi cifara dodajemo korekciju (0011)2 Ako je pi+1 = 0 onda se ovoj grupi cifara dodaje korekcija (1101)2

Do prekoraenja je dolo ako je pn=1.


Uvod u organizaciju raunara 26

Primer

X=28367 Y=2847 X+Y=31214 28 36 7A + 02 84 7A = 31 21 4A

X 0101 1011 0110 1001 1010 Y 0011 0101 1011 0111 1010 p 0 1 1 1 1 0 S1 1001 0001 0010 0001 0100 k 1101 0011 0011 0011 0011 S 0110 0100 0101 0100 0111
Uvod u organizaciju raunara 27

Oduzimanje u kodu viak 3


Poto je kod viak 3 komplementaran odreivanje potpunog komplementa broja zapisanog u ovom kodu se jednostavno vri komplementiranjem datog zapisa. Zato se oduzimanje najjednostavnije vri kao sabiranje u potpunom komplementu umanjenika sa umanjiocem kome je promenjen znak.

Uvod u organizaciju raunara 28

Primer

X=5836 Y=8586 X-Y=2750 05 83 6A 08 58 6A = -02 75 0A

P.K. X=05836 Y=08586 -Y 91414 -Y 1100 0100 0111 0100 0111 X 0011 1000 1011 0110 1001 -Y 1100 0100 0111 0100 0111 p 0 0 1 0 1 0 S1 1111 1101 0010 1011 0000 k 1101 1101 0011 1101 0011 S 1100 1010 0101 1000 0011 = 97250 = -2750
Uvod u organizaciju raunara 29

You might also like