Aritmetika fiksnog i kliznog zareza 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Aritmetika fiksnog i kliznog zareza



 

Kod obrada numeričkih podataka memorišu se numeričke vrijednosti u binarnom obliku. Binarni brojevi se memorišu u registre sa određenim brojem binarnih mjesta, odnosno bitova. Dužine registara, prema potrebi izračunavanja rezultata na manji ili veći broj decimala, mogu biti:

· poluriječi (16 bitova),

· riječi (32 bita) i

· dvostruke riječi (64 bita).

U registru od jedne riječi krajnji lijevi bit rezervisan je za predznak broja, a 31 bit za cifre binarnog broja. Najveći broj koji se može smjestiti u ovakav registar je:

231 - 1 = 2 147 483 647

Aritmetika fiksnog zareza (fixed point arithmetic) je metod izračunavanja kod koga kompjuter ne uzima u obzir položaj decimalnog zareza ili tačke. Naime, unaprijed se definiše određeni broj decimalnih mjesta i koristi se tamo gdje je broj decimalnih mjesta konstantan, npr. u računovodstvenim obradama gdje se finansijski izrazi zaokružuju na pare.

Svaki binarni broj koji se nalazi u registru dužine jedne riječi ima memorisan predznak. Predznak se unosi i memoriše na prvo lijevo binarno mjesto riječi, a broj se memoriše s desna u lijevo. Pozitivan predznak se označava sa 0, a negativan sa 1. Pozitivan broj 851 memorisan u dužini riječi i u aritmetici fiksnog zareza ima slijedeći oblik:

 

   

Aritmetika kliznog zareza (floating point arithmetic) koristi se kada nam je potreban rezultat sa određenim brojem decimala. Ovaj metod je pogodan za aritmetičke operacije iz oblasti nauke i tehnike. Dužina riječi od 32 bita dijeli se na slijedeći način:

· 24 bita za upis binarnog broja,

· 1 bit za oznaku predznaka broja i

· 7 bitova za oznaku eksponenta baze 10.

Pomoću 7 bitova prikazuju se eksponenti od 0 do 127, jer je 27 -1 = 127.

U aritmetici kliznog zareza, za decimalni zarez je rezervisano mjesto ispred prve cifre memorisanog broja, a definisan je eksponentom 64 na bazu 10. Eksponent 64 nalazi se u sredini niza brojeva od 0 do 127 i prikazan je sa jedinicom na šestom binarnom mjestu. Od tog polaznog položaja decimalni zarez se pomjera ili nadesno (povećava se broj) dodajući eksponentu 64 broj koji je jednak broju pomaka udesno, ili se zarez pomjera ulijevo (smanjuje se broj) oduzimajući broj pomaka od eksponenta 64. Tako se dobiva relativni eksponent baze 10, a od 63 do 1 negativne eksponente baze 10.

 

 

Izgled broja +787 ili 0,787 x 103:

67 0,787

0 1000011 000000000000001100010011

predznak eksponent mantisa broja

Izgled broja - 0,0787 ili - 0,787 x 10-1:

63 0,787

1 0111111 000000000000001100010011

 

Aritmetika kliznog zareza optimalnije koristi glavnu memoriju kompjutera jer dužinu određuje prema potrebi. Međutim, nedostatak je što se kod traženja podataka mora tačno navesti adresa i dužina polja gdje je podatak memorisan. Suprotno, u aritmetici fiksnog zareza slabije se koristi glavna memorija kompjutera, a relativno lakše se traže podaci. Ipak, obje aritmetike imaju primjenu, zavisno od toga šta obrada podataka treba da uradi.

 

Kodovi

 

Kompjuterski brojni sistemi baziraju se na ciframa 0 i 1, a mogu biti binarni, oktalni i heksadecimalni. Kada se brojevi prikazuju u konkretnom brojnom sistemu binarna mjesta se grupišu u grupe kojima se može prikazati najveći element toga brojnog sistema. Konkretnim brojnim sistemom prikazuju se i svi znakovi. Brojevi i znakovi uvijek se prikazuju pomoću istoga broja mjesta, ali se razlikuju poretkom nula i jedinica. Raspored nula i jedinica kojima se interpretiraju brojevi i znakovi naziva se kôd.

Za kodiranje se obično koriste 6-bitni i 8-bitni bajtovi. Pomoću 6-bitnih bajtova mogu se prikazati 26 = 64 različita znaka, a pomoću 8-bitnih bajtova 28 = 256 znakova ili različitih kombinacija. Pored mogućnosti određenih brojem binarnih mjesta u bajtu, postoji veliki broj načina kodiranja i pomoću istovrsnih bajtova. U daljem tekstu obradićemo:

· tetradni kod,

· šest-bitni kod i

· osam-bitni kod.

Tetradni kod

Prvi kompjuteri obrađivali su podatke napisane u binarnom brojnom sistemu. Poslije su se počele upotrebljavati grupe od četiri binarna mjesta koje su se zvale tetrade. Tetrade su se koristile za prikazivanje cifara dekadnog brojnog sistema. Tako je nastao binarno-decimalni kôd, kojim se postigla veća preglednost i lakša kontrola obrade podataka. Međutim, osnovni nedostatak je bio relativno slaba iskorištenost glavne memorije kompjutera.

Binarno-decimalni kod (BCD) sadrži tetrade, a svaka tetrada ima četiri binarna mjesta sa mjesnim vrijednostima 8,4,2,1. Jedna tetrada predstavlja bilo koju cifru od 0 do 9 i služi za određenu mjesnu vrijednost, npr. jedinica, desetica, stotica itd.

Primjer:

binarni kod binarno-decimalni kod dekadni broj

10100012 1000 0001 81

+ 11100102 0001 0001 0100114

110000112 0001 1001 0101 195

U postupku sabiranja kod pojedinih tetrada dobile su se samo dekadne jedinice. Kako se tetradom može prikazati dekadna vrijednost 15, a najveći element dekadnog sistema je 9, moraju se uskladiti vrijednosti tetrade sa dekadnim brojnim sistemom. To se postiže na taj način da se tetradi doda binarni broj 6. Tetrada sa binarnim brojem 6 (0110) naziva se pseudotetrada i predstavlja neiskorišćeni broj kombinacija tetrade kod interpretacije cifara dekadnog brojnog sistema.

 

Sljedeći primjer ilustruje korišćenje pseudotetrade kod sabiranja:

1000 0110 86

+ 0111 0100 74

1111 1010 160

+ 0110

1 0000

+ 0110

1 0110

0001 0110 0000 = 16010

 

2.1.5.2 Šest-bitni kod

Šest-bitni bajtovi se koriste za prikaz numeričkih, alfabetskih i specijalnih znakova. Svi alfanumerički znakovi mogu se prikazati u izmijenjenom binarno-decimalnom kodu, koji je nastao proširenjem BCD koda. Ovaj kôd je prihvaćen kao međunarodni standard, a pored 6 bitova za prikazivanje znakova pridružen mu je i bit za kontrolu.

Naročito je poznat tzv.ECMA (European Computer Manufacturing Association) kod, koji predstavlja vrstu 6-bitnog koda, koji se zasniva na oktalnom brojnom sistemu. Kod ovoga koda bajt se dijeli na dva jednaka dijela po tri bita u kojima se može prikazati najveći element oktalnog brojnog sistema (7 = 111). Kontrolni bit ni ovdje nije sastavni dio bajta. Binarno-decimalni kod u 6-bitnom bajtu ima slijedeći izgled:

kontrolni bit zonski dio numerički dio

C B A 8 4 2 1

 

Transformacija u ECMA -kôd u 6-bitnom bajtu izgleda ovako:

kontrolni bit oktalne desetice

K 22 21 20 22 21 20
  4 2 1 4 2 1

 

U oba koda možemo prikazati 26 = 64 različita znaka, a u ECMA -kodu u jednom bajtu najveću dekadnu numeričku vrijednost 63, jer se u oba dijela po 3 bita može prikazati broj 7, odnosno 778 = 6310.

Šest-bitni kodovi su vezani za pojavu druge generacije kompjutera i još su u primjeni, iako je danas dominantan 8-bitni kod.

 

Osam-bitni kod

Savremenu generaciju kompjutera, odnosno kompjuterskih sistema sa bajtnom organizacijom unutrašnje memorije, karakteriše primjena heksadecimalnog brojnog sistema i 8-bitni bajt. Bajt u ovom slučaju ima osam bitova. Kada se govori o 8-bitnom kodu onda se podrazumijeva prošireni i izmijenjeni binarno-decimalni kod, koji je poznatiji po skraćenom nazivu EBCDIC. To je ujedno i najpopularniji 8-bitni kod.

U ovom kodu moguće je predstaviti 28 = 256 različitih znakova, a kako su obično u primjeni samo 64 znaka, to znači da mogućnosti ovoga koda nisu potpuno iskorištene.

 

Struktura koda se sastoji od podjele bajta u dva jednaka dijela:

 

kontrolni bit zonski dio numerički dio

  0 1 2 3 4 5 6 7
  2322 21 20 2322 21 20

 

Za prikazivanje alfa, numeričkih i specijalnih znakova koristi se numerički dio u kombinaciji sa zonskim dijelom. Tako na primjer, za kodiranje slova od A do I u zonskom dijelu nalazi se 1100, a u numeričkom za slovo A 0001, za B 0010, za C 0011... i tako redom sve do I 1001. Kompletno kodiranje znakova u EBCDIC-kodu prikazano je u sljedećoj tabeli:

 

 

Tabela 12Kodiranje znakova u EBCDIC-kodu

ZONSKI DIO NUMERIČKI DIO  
1 1 0 0 od 0001 do 1001 za slova od A do I
1 1 0 1 od 0001 do 1001 za slova od J do R
1 1 1 0 od 0010 do 1001 za slova od S do Z
1 0 0 0 od 0001 do 1001 za mala slova od a do i
1 0 0 1 od 0001 do 1001 za mala slova od j do r
1 0 1 0 od 0010 do 1001 za mala slova od s do z
0 1 0 0 od 1010 do 1111 za grupe posebnih znakova (+,%,?,x itd)
0 1 1 0 od 1010 do 1111  
0 1 1 1 od 1010 do 1111  
1 1 1 1 od 0000 do 1001 za brojeve od 0 do 9

 

Brojevi se kodiraju u dva formata i to u:

· zonskom ili nepakovanom formatu i

· pakovanom formatu.

U zonskom formatu se cjelokupan bajt upotrebljava za prezentovanje jednog znaka. Kod ovoga formata za sve cifre u zonskom dijelu stoji 1111. Dakle, zonski dio se ne koristi za upisivanje cifara.

Pakovani format je mnogo ekonomičniji, jer se obje tetrade koriste za upisivanje cifara. U ovom formatu, numerički dio bajta koristi se za prezentovanje jedne, a zonski dio za prezentovanje druge cifre dekadnog brojnog sistema.

Ilustracija ovih postupaka vidi se na slijedećem primjeru. Za broj 4871 potrebna su četiri bajta za upis u zonskom ili nepakovanom formatu, a samo dva bajta za upis u pakovanom formatu:

u zonskom formatu:

1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1

 

u pakovanom formatu:

0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1

 

Osam-bitni kod omogućuje dobro iskorištenje glavne memorije kompjutera, jer se numerički znakovi mogu memorisati i obrađivati u pakovanom formatu tj. numerički i zonski dio predviđeni su za cifre, tako da se u jednom bajtu mogu memorisati dvije umjesto jedne cifre.

Osam-bitni kod prilagođen je našim potrebama, jer umjesto posebnih znakova, koji se neće koristiti, mogu se zamijeniti sa znakovima naše abecede (š, č, ž itd).

 

Prikaz brojeva

Za smještanje (memorisanje) brojeva u računaru služi elektronski sklop koji se naziva bistabil (flip-flop). Naziv bistabil dolazi od toga što takav sklop ima dva stabilna stanja. Jedno stanje (na primjer, niskog napona) odgovara znaku 0, a drugo stanje (na primjer, visokog napona) odgovara znaku 1. Prema tome bistabil je sklop koji može da zapamti dvije cifre, 1 ili 0 (jedan bit). Kako se binarni broj sastoji od više cifara (bitova) za prikaz broja moramo upotrijebiti nekoliko bistabila. Takva grupa bistabila čini registar. Registri su sastavni dio svih dijelova kompjutera. Broj bistabila u registru nekog kompjutera određuje njegovu dužinu. Dužina većine registara u nekom računaru je određena dužinom riječiračunara. Riječ je količina informacija koju računar može da obradi u jednoj operaciji, smjesti u memoriju, odnosno uzme iz memorije. Najčešće dužine riječi (pa prema tome i registara) su 8, 16, 32 i 64 bita, a kod personalnih računara danas je uobičajena dužina riječi od 64 bita.

Grupa od 8 bitova obično se naziva bajt (engl. byte). Jedan bajt se sastoji od osam bitova. Bit se skraćeno označava s b, a bajt sa B, pa važi 1B = 8b. Dakle, personalni kompjuteri imaju dužinu riječi od 4B ili 32b.

Slijedeća slika prikazuje registar dužine 16 bita (2 bajta). Svaki bistabil simbolično je prikazan kao jedan kvadratić u koji je zapisan jedan bit. Informacija smještena u registru čini jednu riječ. Riječ može predstavljati broj, znak, kôd neke instrukcije i sl. Kako je sadržaj jednog bistabila 0 ili 1, a registar se u ovom slučaju sastoji od 16 bistabila, možemo jednom riječju predstaviti 216 različitih objekata, na primjer, 216 različitih brojeva (216 = 65536).

1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1

_

bit

________________ _________________

bajt bajt

__________________________________

riječ

Za smještanje podataka i programa u kompjuteru služi memorija kompjutera koja se može predstaviti kao skup registara.

Nas zanima u kojem obliku se podaci zapisuju u memoriju računara. Osnovni tipovi podataka koji se upisuju u memoriju računara su brojevi (prirodni, cijeli i realni) i znakovi (slova, cifre, znakovi interpunkcije i sl.).

PRIKAZ PRIRODNIH BROJEVA

Prirodni brojevi se zapisuju u memoriju računara slično kao što bi ih zapisivali na papir. Najvažnija razlika je u tome što je broj bitova u računaru koji imamo na raspolaganju za prikaz broja ograničen. Broj bita za prikaz broja nije proizvoljan i može biti jednak dužini riječi, ali i duplo manji (poluriječ) ili duplo veći (dvostruka riječ).

Primjer:

Na raspolaganju za prikaz broja imamo jedan bajt. Kako će u memoriji računara biti prikazan dekadni broj 8?

810 = 10002

U memoriji računara biće zapisano 00001000. Važno je uočiti da smo napisali i nule sa lijeve strane što je uobičajeno kada se prikazuje sadržaj nekog dijela memorije. Na taj način se vidi koliko je bitova određeno za prikaz broja, te iznos svakog bita.

 

PRIKAZ NEBROJČANIH VELIČINA

Osim sa brojevima, računari mogu raditi i sa slovima i drugim znakovima. Njih u memoriju računara ne možemo zapisati u izvornom obliku, već samo koristeći unaprijed dogovorenu kombinaciju binarnih cifri za svaki znak. Takva kombinacija bitova naziva se kôd određenog znaka.

Da bi se omogućila razmjena podataka između računara potrebno je imati standardizovan kôd koji će svi upotrebljavati i razumjeti. Danas je u širokoj upotrebi ASCII (American Standards Code for Information Interchange). To je osmo-bitni kôd čija je dužina 8 bita. On omogućuje prikaz velikih i malih slova, specijalnih znakova (na primjer, *, +, =,?, $, %, itd.), te upravljačkih znakova (na primjer, početak poruke, kraj poruke, novi red, itd.). Upotrebom osam bitova ukupno je moguće prikazati 256 (28=256) različitih znakova. Prvih 128 znakova je zaista standardizovano, a preostalih 128 nije jedinstveno standardizovano. Razlog tome je što je originalni ASCII koristio 7 bita. Dodatnih 128 kodova za novih 128 znakova dobiveno je dodavanjem jednog bita, te je dobiven tzv. prošireni skup znakova. Kompanija IBM koristi neke od dodatnih 128 kodova za prikaz slova koja su specifična za različite evropske zemlje. Naime, ne treba zaboraviti da je riječ o američkom standardu, koji ne vodi računa o specifičnostima drugih zemalja.

U tabeli su prikazani i kodovi koje za prikaz naših znakova koristi firma Microsoft u operativnom sistemu Windows.

 

Tabela 13 Prikaz kodova

Naš znak YUSCII IBM 852 Microsoft 1250
Č 9410 (^) 17210 20010
Ć 9310 (]) 14310 19810
Đ 9210 (\) 20910 20810
Š 9110 ([) 23010 13810
Ž 6410 (@) 16610 14210
č 12610 (~) 15910 23210
ć 12510 (}) 13410 23010
đ 12410 (|) 20810 24010
š 12310 ({) 23110 15410
ž 9610 (`) 16710 15810

Poteškoće sa našim znakovima mogu nastupiti prilikom sortiranja riječi po abecedi. Naime, kod sortiranja se koristi činjenica da numeričke vrijednosti kodova (dakle kodovi shvaćeni kao binarni brojevi) odgovaraju redoslijedu slova u abecedi. Na primjer, kôd slova a manji je od koda slova b, a taj je opet manji od koda slova c, itd. Međutim, to važi samo za slova američke abecede koja zauzimaju kodove 65 - 90 (slova A - Z) i 97 - 122 (slova a - z). Zbog toga program koji ne vodi računa o specifičnostima naših slova neće dobro sortirati, na primjer, prezimena sa našim slovima, iako će sortiranje engleskih prezimena raditi bez greške.

 



Поделиться:


Последнее изменение этой страницы: 2019-04-27; просмотров: 87; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.108.236 (0.024 с.)