Binarno kodirani dekadni brojevi Uvod u organizaciju raunara
Binarno kodirani dekadni brojevi Uvod u organizaciju računara 1
Problemi u radu sa razlomljenim brojevima Prevođenje – (0, 4)10 = (0, 0110…)2 Zaokruživanje – (11, 11)2 = (3, 75)10 → (100, 0)2 = (4, 0)10 Uvod u organizaciju računara 2
Binarni kodovi dekadnih cifara Zbog problema sa preciznim predstavljanjem dekadnih razlomljenih brojeva u binarnom sistemu pojavila se ideja o kodiranju pojedinačnih dekadnih cifara binarnim brojevima. Uvod u organizaciju računara 3
Binarni kodovi dekadnih cifara Za kodiranje dekadnih cifara binarnim brojevima potrebne su bar četiri binarne cifre. Postoji više načina da se jednoj dekadnoj cifri dodeli binarni kod. Uvod u organizaciju računara 4
Binarni kodovi dekadnih cifara Poželjna svojstva koje kodovi treba da imaju su: – Jednoznačnost – Najvećoj dekadnoj cifri odgovara kod koji ima najveću vrednost. – Očuvanje parnosti – Komplementarnost – kodovi cifara a i b za koje važi a+b=9 su komplementarni – Kod je težinski 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 računara 5
Neki binarni kodovi dekadnih cifara Dekadna cifra Binarni kod 8421 2421 5421 753 -6 84 -2 -1 Višak 3 Ciklični 0 0000 0000 0011 0001 1001 0111 0100 0101 2 0010 0111 0110 0101 0111 3 0011 0010 0101 0110 1111 4 0100 1011 0100 0111 1110 5 0101 1011 1000 0100 1011 1000 1100 6 0110 1100 1001 1101 1010 1001 1000 7 0111 1101 1010 1001 8 1000 1110 Uvod 1011 0110 u organizaciju računara 1000 10116 9 1001 1111 1100 0011 1100 1111
Neoznačeni binarno kodirani dekadni brojevi Binarno kodirani zapis neoznačenog dekadnog broja u nekom kodu se dobija tako što se binarno kodira u odgovarajućem kodu svaka od njegovih cifara. Uvod u organizaciju računara 7
Primeri Broj 53, 84 možemo zapisati u različitim kodovima na sledeći način: 0101 0011, 1000 0100 1000 0110, 1011 0111 1011 0101, 1000 0100 (8421) (Višak 3) (84 -2 -1) Uvod u organizaciju računara 8
Označeni binarno kodirani dekadni brojevi se zapisuju na dva načina: – Znak i apsolutna vrednost – U potpunom komplementu pri čemu se prvo nađe potpuni komplement broja u sistemu sa osnovom 10, pa se zatim izvrši kodiranje. Uvod u organizaciju računara 9
Nepakovani zapis Binarno kodirani dekadni brojevi se mogu koristiti kako za zapis brojeva, tako i za zapis znakova. Iz tog zahteva proističu neke specifičnosti zapisa brojeva. Kod računara koji koriste ASCII kod u nepakovanom zapisu broja se u polubajt veće težine upisuje cifra 5 koja označava da je u bajtu zapisana cifra, a u polubajtu manje težine se zapisuje BCD zapis cifre u odgovarajućem kodu. Uvod u organizaciju računara 10
Nepakovani zapis BCD brojevi se u računaru obično zapisuju u obliku znak i apsolutna vrednost. Znak se zapisuje u polubajtu veće težine (umesto cifre 5) poslednjeg bajta i to kao binarno zapisana heksadekadna cifra A za pozitivne brojeve, a B za negativne. Uvod u organizaciju računara 11
Primer +896312 58 59 56 53 51 A 2 -896312 58 59 56 53 51 B 2 Uvod u organizaciju računara 12
Pakovani zapis Ukoliko se koriste samo brojčani podaci dolazi do nepotrebnog trošenja prostora, jer se ponavlja vrednost 5 u svakom polubajtu veće težine, osim kod poslednjeg bajta. Zato se uvodi pakovani zapis BCD brojeva. Uvod u organizaciju računara 13
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. Pošto se koristi ceo broj bajtova, u slučaju zapisa broja sa parnim brojem cifara u vodeći polubajt se upisuje 0. Uvod u organizaciju računara 14
Primeri +896312 -896312 +56421 -56421 08 96 31 2 A 08 96 31 2 B 56 42 1 A 56 42 1 B Uvod u organizaciju računara 15
Prednosti korišćenja BCD brojeva Razlomljeni dekadni brojevi koji nemaju konačan binarni zapis (npr. 0. 4) sada mogu da se zapišu Zaokruživanje na dekadne cifre je lako Množenje brojem 10 je lako Jednostavno prevođenje u dekadne cifre Uvod u organizaciju računara 16
Primene Finansijski softver Vreme/datum u BIOS-u Jednostavno prevođenje u ASCII Elektronika koja prikazuje brojeve pomoću 7 segmenata Uvod u organizaciju računara 17
Promena znaka Pošto su BCD brojevi u računaru zapisani u obliku znak i aspolutna vrednost promena znaka je jednostavna. Samo se menja vrednost poslednjeg bita. 08 96 31 2 A 08 96 31 2 B Uvod u organizaciju računara 18
Sabiranje i oduzimanje Pri sabiranju i oduzimanju važe opšta pravila sabiranja i oduzimanja celih brojeva u zapisu znak i apsolutna vrednost. To znači da se operacije nad označenim brojevima mogu svesti na operacije nad neoznačenim brojevima. Uvod u organizaciju računara 19
Sabiranje i oduzimanje Ako se radi o razlomljenim brojevima, koristi se zapis u fiksnom zarezu Prilikom operacija se vodi računa da se decimalni zarezi (odnosno decimalne pozicije) poravnaju Uvod u organizaciju računara 20
Sabiranje i oduzimanje Sabiranje BCD brojeva se vrši u dve faze. U prvoj fazi se BCD zapisi cifara sabiraka sabiraju kao neoznačeni celi četvorocifreni binarni brojevi. Ako se javi prekoračenje, 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 vrše korekcije koje zavise od koda u kome smo predstavljali dekadne cifre. Uvod u organizaciju računara 21
Sabiranje i oduzimanje Oduzimanje se može izvršiti na dva načina: – po sličnom principu kao i sabiranje, pri čemu se u obe faze umesto sabiranja vrši oduzimanje, i – Kao sabiranje u potpunom komplementu umanjenika sa umanjiocem kome je promenjen znak. Uvod u organizaciju računara 22
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 p’i prenosi u prvoj fazi sabiranja sa dekadnog mesta i-1 na mesto i, a p’’i odgovarajući prenosi u drugoj fazi. Važi p’ 0=0 i p’’ 0=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 računa prenos za sledeći korak. Uvod u organizaciju računara 23
Sabiranje u kodu 8421 U i-tom koraku radimo: – Neka je c 3 c 2 c 1 c 0 i-ta grupa od četiri binarne cifre gledano zdesna na levo – ti=c 3 c 2 c 1 c 0 + p’’i – Ako je p’i+1 = 1 ili ti ≥ (1010)2 onda ovoj grupi cifara dodajemo korekciju (0110)2 i pri tome određuemo prenos p’’i+1. Ako je p’n=1 ili p’’n=1 došlo je do prekoračenja. Uvod u organizaciju računara 24
Primer X= -23492 Y=-6589 X+Y=-30081 23 49 2 B + 06 58 9 B = 30 08 1 B -X 0010 0011 0100 1001 0010 -Y 0000 0110 0101 1000 1001 p’ 0 0 0 1 0 0 S 1 0010 1001 1010 0001 1011 p’’ 0 1 1 0 k 0000 0110 -S 0011 0000 1000 0001 =>S=-30081 Uvod u organizaciju računara 25
Oduzimanje u kodu 8421 U prvoj fazi se BCD zapisi cifara umanjenika i umanjioca oduzimaju kao neoznačeni 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 označavaju se sa p’i. U drugoj fazi se zdesna nalevo posmatraju po četiri binarne cifre c 3 c 2 c 1 c 0 rezultata prve faze i od njih se oduzima (0110)2 ako važi p’i+1 = 1. Uvod u organizaciju računara 26
Primer X=-51629 Y=2634 X+Y=-48995 52 62 9 B + 02 63 4 A = 48 99 5 B -X 0101 0001 0110 0010 1001 Y 0000 0010 0110 0011 0100 p 0 1 1 1 0 0 S 1 0100 1111 0101 K 0000 0110 0000 -S 0100 1001 0101 Uvod u organizaciju računara 27
Sabiranje u kodu višak 3 Neka važe oznake koje smo koristili za kod 8421. I u kodu višak 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 računara 28
Sabiranje u kodu višak 3 U i-tom koraku radimo: – Neka je c 3 c 2 c 1 c 0 i-ta grupa od četiri binarne cifre gledano zdesna na levo – Ako je p’i+1 = 1 onda ovoj grupi cifara dodajemo korekciju (0011)2 – Ako je p’i+1 = 0 onda se ovoj grupi cifara dodaje korekcija (1101)2 Do prekoračenja je došlo ako je p’n=1. Uvod u organizaciju računara 29
Primer X=28317 Y=2847 X+Y=31164 28 31 7 A + 02 84 7 A = 31 16 4 A X 0101 1011 0110 0100 1010 Y 0011 0101 1011 0111 1010 p’ 0 1 1 0 S 1 1001 0001 1100 0100 k 1101 0011 S 0110 0100 1001 0111 Uvod u organizaciju računara 30
Oduzimanje u kodu višak 3 Pošto je kod višak 3 komplementaran određivanje potpunog komplementa broja zapisanog u ovom kodu se jednostavno vrši komplementiranjem datog zapisa. Zato se oduzimanje najjednostavnije vrši kao sabiranje u potpunom komplementu umanjenika sa umanjiocem kome je promenjen znak. Uvod u organizaciju računara 31
Primer X=5836 Y=8586 X-Y=2750 05 83 6 A – 08 58 6 A = -02 75 0 A P. K. X=05836 Y=08586 -Y 91414 -Y 1100 0111 0100 0111 X 0011 1000 1011 0110 1001 -Y 1100 0111 0100 0111 p 0 0 1 0 S 1 1111 1101 0010 1011 0000 k 1101 0011 S 1100 1010 0101 1000 0011 = 97250 = -2750 Uvod u organizaciju računara 32
Operacije sa razlomljenim brojevima (primer) 71, 21 + 639, 1 = 071, 21 + 639, 10 = … BCD zapisivanje … 07121 A + 63910 A =. . . BCD sabiranje … 71031 A = … BCD dekodiranje … 710, 31 Uvod u organizaciju računara 33
- Slides: 33