Professional Documents
Culture Documents
vebe - as 6: BCD
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 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
Binarno kodirani zapis neoznaenog dekadnog broja u nekom kodu se dobija tako to se binarno kodira u odgovarajuem kodu svaka od njegovih cifara.
Primeri
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.
Primer
+896312 58 59 56 53 51 A2 -896312 58 59 56 53 51 B2
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.
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
08 96 31 2A 08 96 31 2B 56 42 1A 56 42 1B
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.
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
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
Primer
-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
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 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
Primer
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
Primer
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