x
Učitavanje

4.6 Zapis brojeva u memoriji računala

Što ću naučiti?
Europska unija - Zajedno do fondova EU
Prethodna jedinica
Sadržaj jedinice icon sadržaj jedinice

Na početku...

Sofija i Marta najbolje su prijateljice. Sofiji bolje idu humanistički predmeti, dok Marta više voli prirodne predmete. Marta zna mnogo o računalima i sama čita i istražuje o toj temi. Sofija ju je jedan dan pitala: " Kako zapravo računalo pamti? Kad ja upišem broj 5 , kako to računalo zapamti?"

Marta je bila oduševljena da joj može objasniti, baš je nedavno čitala o tome.

Zapis brojeva u memoriji računala

Kad je Marta počela objašnjavati, vidjela je da to i nije tako jednostavno objasniti nekome tko ne zna mnogo o računalima. Pa je krenula od početka. Prisjetila je svoju prijateljicu da je iz informatike učila o memoriji računala.

RAM memorija
RAM memorija na matičnoj ploči.

Memorija računala sastoji se od malih elektroničkih sklopova (bistabila) koji mogu biti u dva stanja: 0 (niži napon) i 1 (viši napon).

Jedna binarna znamenka ili bit može primiti vrijednost 0 ili 1 . Logično je da jedan bistabil uvijek pamti jednu binarnu znamenku bit.

Ako želimo pohraniti više bitova, trebat će nam više povezanih bistabila. Takav skup bistabila naziva se registar. Je li za sada jasno?   

  • 1 bistabil pohranjuje 1 bit        
  • 1 registar pohranjuje više bistabila (bitova).
Registar
Registar koji pohranjuje više bistabila.

Ovisno o podatku koji treba pohraniti, veličina registra može biti različita. Tako postoje registri od 8 bitova, 16 bitova, 32 i 64 bita. Prepoznaješ li ove brojeve? To su potencije broja 2 , a zašto? Jer se radi o binarnom brojevnom sustavu!

  • duljina od 8 bitova naziva se bajt

To ti je sigurno poznato. Bajt je najmanja mjerna jedinica za kapacitet memorije. A sigurno si čula i za kibibajt, mebibajt, gibibajt i tako dalje. To su veće jedinice za kapacitet memorije.

Također, važno je želimo li zapisati prirodni, negativni ili decimalni broj. Postoje različite metode i pri zapisu je uvijek važno naglasiti o kojoj se metodi radi.

Na primjer, broj 5 za koji si me pitala može biti zapisan na različite načine. Za početak pretvorimo broj 5 u binarni sustav: 5 10 = 101 2 . Dakle, mogao bi se prikazati najmanje u 4 bita kao 0101.

Binarni broj zapisujemo zdesna prema lijevo. Budući da dobiveni broj pohranjujemo u registar od 8 bitova, u preostala prazna mjesta unose se nule pa to izgleda ovako:

0 0 0 0 0 1 0 1

a radi li se o 16-bitnom registru, izgleda ovako:

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

Sofija: A zašto koristimo 16 bitova kada tu ima toliko nepotrebnih nula?

Marta: Zato što možda računalo u svome radu koristi 16-bitne registre. Mi ćemo radi jednostavnosti koristiti 8-bitne registre za manje brojeve, a veće registre za veće brojeve.

Na primjer, provjerimo u kakav će registar računalo smjestiti broj 280 .

280 10 = 100011000 2 .

Ovaj broj može se smjestiti u najmanje 12 znamenaka: 000100011000. Zbog toga ga se ne može pohraniti u registar od 8 bitova, već ga je potrebno pohraniti u registar od 16 bitova. U preostala prazna mjesta unesu se nule, pa to izgleda ovako:

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

A želimo li zapisivati i negativne brojeve, onda nam treba ova metoda:

Zapis cijelih brojeva metodom predznaka i apsolutne vrijednosti

Skup cijelih brojeva čine pozitivni i negativni brojevi. Ispred negativnog broja zapisujemo znak - (minus), a znak + ispred pozitivnog broja obično ne pišemo.

Sofija: Ali kako ćemo napisati + ili - ako u bistabilu mogu biti samo 2 stanja: 0 ili 1 ?
Marta: Dobro pitanje, tu se radi o dogovoru, prvi bit iskoristit ćemo za predznak:

  • ako je broj pozitivan, u prvi bit zapisujemo 0
  • ako je broj negativan, u prvi bit zapisujemo 1 .

Na primjer, zapišimo broj - 9 . Prikažimo broj 9 u binarnom obliku: 9 10 = 1001 2 .

Dobiveni binarni broj upisujemo zdesna, popunjavamo vodećim nulama, a prvi bit koji predstavlja predznak postavljamo na 1 .

1
0 0 0 1 0 0 1

                                        

predznak         apsolutna vrijednost

Zapravo, uvijek prikažemo apsolutnu vrijednost broja, a zatim odredimo predznak, zato se ova metoda tako i zove.

Koji je najveći broj koji možemo upisati u 8-bitni registar metodom predznaka i apsolutne vrijednosti?
.
A najmanji?
.

Pomoć:

U registru od  8 bitova imamo na raspolaganju  7 bitova za broj, a prvi bit služi za predznak. Upiši redom jedinice u dio za prikaz broja, a prvi bit postavi na  0  jer je broj pozitivan. Za negativan broj, prvi bit postavi na  1 , ali ga ne zbrajaj s ostalima jer je to samo oznaka predznaka.

Postupak:

predznak
0 1 1 1 1 1 1 1

01111111 2 = 127 10

1 1 1 1 1 1 1 1
predznak

11111111 2 = - 127 10

Dekadskim vrijednostima na brojevnom pravcu pridruži njihove binarne ekvivalente.

Brojevni pravac s dekadskim vrijednostima kojima treba pridružiti njihove binarne ekvivalente.
10011001
01111000
11001010
00100111
00000111
10011111
null

Sofija: Ali sada imamo jedan bit manje za zapis brojeva, kada ga koristimo za predznak.

Marta: Tako je, ali predznak moramo na neki način zapisati. Veći su problem računske operacije u takvom sustavu. Treba voditi računa zbrajaju li se brojevi istog  ili različitog predznaka. Zato se negativni brojevi češće zapisuju metodom dvojnog komplementa koju smo naučili u jedinici Zbrajanje brojeva u binarnom brojevnom sustavu.

Pa da vidimo u čemu je razlika!

Zapis cijelih brojeva metodom dvojnog komplementa

Da kratko ponovimo! Dvojnim komplementom prikazuju se negativni brojevi, a izrađuje se u  3 koraka:

  1. Binarni se broj nadopunjuje vodećim nulama do potrebnog broja (ovisi o veličini registra).
  2. Jedinice se zamjenjuju nulama, a nule jedinicama - komplement.
  3. Komplementu se dodaje  1 - dvojni komplement.

Zadatak 1.

Kako će u 8-bitnom registru izgledati binarni zapis dekadskog broja - 82 ako se radi o metodi dvojnoga komplementa?
.

Pomoć:

  1. Broj 82 pretvorimo u binarni oblik.
  2. Nadopunimo vodećim nulama do veličine registra (8-bitni).
  3. Zamjenjujemo 0 s 1 i obrnuto.
  4. Dodajemo 1 .

Postupak:

  1. Broj 82 pretvorimo u binarni oblik: 1010010.‬
  2. Nadopunimo vodećim nulama do veličine registra: 01010010.‬
  3. Zamjenjujemo 0 s 1 i obrnuto: 10101101.
  4. Dodajemo 1 : 10101110.

Sofija : Ako je broj zapisan metodom dvojnog komplementa, hoćemo li napraviti obrnuti postupak, oduzeti jedinicu, zamijeniti nule i jedinice... da bismo dobili dekadski oblik broja?

Marta: Ma ne, to se izračuna vrlo jednostavno. Znamenke binarnog broja množiš s odgovarajućim težinskim vrijednostima, samo paziš da krajnji lijevi bit ima negativan predznak. Na primjer, radi li se o 8-bitnom registru, vodeći bit množimo s - 128 ( 2 7 ).

Evo na primjeru:

Koji je dekadski broj zapisan u 8-bitnom registru ako se radi o metodi dvojnog komplementa?

1 1 1 1 1 1 0 1

Rješenje:

- 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0
1 1 1 1 1 1 0 1

- 1 * 2 7 + 1 * 2 6 + 1 * 2 5 + 1 * 2 4 + 1 * 2 3 + 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = - 128 + 64 + 32 + 16 + 8 + 4 + 0 + 1 = - 128 + 125 = - 3

A sad pokušaj samostalno:

Sofija: Sad baš razmišljam, zapravo je za pozitivni broj svejedno kojom se metodom zapisuje.

Marta: Točno, samo će negativni broj biti različito zapisan ovisno o tome kojom smo se metodom koristili, metodom predznaka i apsolutne vrijednosti ili dvojnog komplementa.

Zadatak 2.

Dekadski broj - 52 zapiši na 2 načina.

Metodom predznaka i apsolutne vrijednosti:
.

Metodom dvojnog komplementa:
.

Pomoć:

Broj je u oba slučaja zapisan u registru od  8 bitova.

Metoda predznaka i apsolutne vrijednosti prvi bit koristi za predznak ( 0 pozitivan broj, a  1 negativan broj). Ostatak broja dobije se množenjem težinskih vrijednosti ili metodom uzajamnog dijeljenja.

Metoda dvojnog komplementa izvodi se u  3 koraka:

  • broj se nadopunjuje vodećim nulama do veličine registra
  • jedinice se zamjenjuju nulama, a nule jedinicama
  • tako dobivenom broju dodaje se  1 .

Postupak:

52 10 = 110100 2

Metoda predznaka i apsolutne vrijednosti:

10110100

Metoda dvojnog komplementa:

  • 00110100
  • 11001011
  • + 1

11001100

Zapis realnih brojeva u računalu

Sofija: A kako se zapisuju decimalni brojevi? Kako ćemo znati gdje je decimalna znamenka? Imamo li i za nju poseban bit?

Marta : Realni se brojevi mogu zapisati na dva načina:

  • s pomičnom točkom (eksponencijani prikaz)
  • s fiksnom točkom.

Prikaz s fiksnom točkom nije praktičan jer koristi fiksni dio registra za prikaz cijelog broja i fiksni dio za prikaz decimalnog dijela broja. Na taj je način prostor u registru loše iskorišten. Na primjer, brojevi 3.1024 i 325.4 koristili bi jednake fiksne dijelove za cijeli i decimalni dio.

Sofija: Što to znači eksponencijalni prikaz? Zvuči mi poznato.

Marta: Poznato ti je jer se tako prikazuju jako veliki ili jako mali brojevi. Još se zove i znanstveni zapis.

Na primjer, možeš li pročitati broj stanovnika na Zemlji: 7 530 000 000 . Bilo bi lakše da ga zapišeš kao 7.53 * 10 9 . Ili kad smo učili da je masa elektrona jednaka oko 0.0000000000000000000000000000009109 k g . Teško je pročitati takav broj pa se zapisuje kao 9.109 * 10 - 31 .

Kako nastaje znanstveni prikaz broja objašnjeno je u videu koji slijedi:

Znanstveni oblik realnog broja

Ideja je takvog zapisa da se broj prikazuje s 1 cijelim mjestom različitim od nule. Pomicanjem decimalne točke ulijevo, eksponent u potenciji povećava se za broj mjesta koliko se točka pomaknula, a ako je pomaknemo udesno, smanji se za toliko mjesta koliko se pomaknula.

Isto vrijedi za bilo koji sustav pa možemo reći da se znanstveni zapis sastoji od:

  • mantise (cijeli dio broja)
  • baze
  • eksponenta.
Znanstveni zapis broja
Dijelovi znanstvenog zapisa broja na primjeru - mantisa, baza i eksponent.

Evo nekoliko zadataka za vježbu. 

A sad nam još ostaje zapisati realni broj u računalo. Neka to bude broj 34.75 .

Najprije broj treba pretvoriti u binarni zapis.

Nadam se da se sjećaš, upute pogledaj u jedinici Binarni brojevni sustav.

Broj 34.75 iz dekadskoga pretvori u binarni oblik.
.

Pomoć:

Cijeli dio broja pretvorimo koristeći se metodom uzastopnog dijeljenja s 2 ili pomoću množenja s težinskim vrijednostima binarnog sustava. Decimalni se dio množi brojem 2 dok rezultat ne bude 1.0 ili dok ne dobijemo dogovorenu točnost (decimale).

Postupak:

ostatak
34 : 2 = 17 0 0.75 * 2 = 1.5
17 : 2 = 8 1 0.5 : 2 = 1.0
  8 : 2 = 4 0
  4 : 2 = 2 0
  2 : 2 = 1 0
  1 : 2 = 0 1

34.75 10 = 100010.11 2

Zapisivanje brojeva s pomičnom točkom u binarnome brojevnom sustavu razradilo je američko stručno društvo Institute of Electrical and Electronics Engineers (IEEE). Najčešće se koristi inačica IEEE 754 i zapis u 32-bitne registre.

Zanimljivost

IEEE je neprofitna stručna udruga koja nastoji poticati, organizirati i pomagati tehničke aktivnosti širom svijeta.

Više o organizaciji pogledaj na njihovoj stranici.

I da napokon smjestimo broj 34.75 u računalni registar od 32 bita.

Sofija: A zašto baš 32 bita?

Marta: Zato što se pomoću standarda IEEE 754 mogu zapisati brojevi s jednostrukom preciznošću ( 32 bita) i s dvostrukom preciznošću ( 64 bita). Mi ćemo koristiti jednostruku preciznost. U registru od  32 bita broj se sprema na sljedeći način:

IEEE 754 standard
32-bitni registar po standardu IEEE 754.

Na primjeru broja 34.75 10 :

  1. PREDZNAK (upisuje se u 1. bit: 0 za pozitivne, a 1 za negativne brojeve), dakle 0 .
  2. Realan broj pretvorimo u binarni 34.75 10 = 100010.11 2.
  3. Dobiveni binarni broj zapišemo u eksponencijalnom obliku 1.0001011 * 2 5 .

Od dobivenog broja određujemo:

MANTISU (decimalni dio) 0001011

KARAKTERISTIKU: eksponent + 127 ( 5 + 127 = 132 ), u binarnom obliku 10000100 .

I napokon, naš broj izgleda ovako:

0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p karakteristika mantisa

p = predznak

Sadrži li mantisa manje od 23 bita, dopunjavamo je nulama.

Sofija: Imam dva pitanja: Zašto se upisuje samo decimalni dio mantise i zašto se eksponentu dodaje 127 ?

Marta: Kod mantise je cijeli dio uvijek 1 jer smo decimalnu oznaku pomicali do jednog cijelog koji je različit od nule. Zašto zapisivati znamenku za koju znamo da je 1 ? Ovu jedinicu zovemo skriveni bit.

Karakteristiku dobijemo tako da eksponentu dodamo 127 jer tako osiguravamo da nemamo negativan eksponent. (U 8-bitnom registru najveći negativni broj koji možemo zapisati jest - 127 pa se dodavanjem broja 127 osigurava da karakteristika ne može biti negativna.)

Takav je 32-bitni zapis nepregledan pa se koristi heksadekadski zapis broja. Imaš li ideju kako heksadekadski zapisati taj broj?

Grupira se po 4 znamenke ( 32 : 4 = 8 ) i heksadekadski zapis sigurno će imati 8 znamenaka.

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

Zadatak 3.

Zapiši gornji 32-bitni zapis u heksadekadskom obliku!

Pomoć:

Grupiraj znamenke po  4 i iz tablice heksadekadskih vrijednosti pročitaj heksadekadske ekvivalente pojedinih binarnih četvorki.

Postupak:

01000010000010110000000000000000

grupiramo po 4

0100 0010 0000 1011 0000 0000 0000 0000 4 2 0 B 0 0 0 0

01000010000010110000000000000000 2 = 420 B 0000 16

Sofija: Uf, ovo je bilo naporno, ali mi je sve jasno. Treba samo samostalno provježbati.

Marta: Evo jedan zadatak za vježbu:

Broj - 0.0625 zapiši u 32-bitni registar prema standardu IEEE 754 :
A
koja je njegova heksadekadska vrijednost?
.

Pomoć:

POSTUPAK

  1. Odredimo predznak ( 0 za pozitivne, a 1 za negativne brojeve).
  2. Realni broj najprije pretvorimo u binarni.
  3. Dobiveni binarni broj zapišemo u eksponencijalnom obliku.
  4. Od dobivenog broja određujemo:
    MANTISU (decimalni dio)
    KARAKTERISTIKU: eksponent + 127 , u binarnom obliku
    Sadrži li mantisa manje od 23 bita, dopunjavamo je nulama.

Postupak:

Predznak: 1

Realni broj u binarni: 0.0625 10 = 0.0001 2

Binarni broj u eksponencijalni: 1 * 2 - 4

MANTISA: 0

KARAKTERISTIKA: - 4 + 127 = 123 > binarno 1111011‬ (dodamo vodeću 0 jer je predviđeno 8 mjesta) 01111011‬

Broj u registru od 32 bita:

1 01111011 00000000000000000000000
predznak karakteristika mantisa

Heksadekadski - čitamo iz tablice:

1011 1101 1000 0000 0000 0000 0000 0000
B D 8 0 0 0 0 0

ILI B D 800000 16

A sada jedan obrnuti zadatak. Koji je broj zapisan u ovom registru?

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

PREDZNAK: 0 znači da je broj pozitivan.

KARAKTERISTIKA: 01111100 2 = 124 10

  • Računamo 124 - 127 = - 3 .
  • EKSPONENT: = - 3 .

MANTISA (decimalni dio) : 01000000000000000000000

MANTISA: dodajemo skriveni bit odnosno cijeli dio mantise 1.01 (nule možemo odbaciti)

...i na kraju

Prijateljice Marta i Sofija dodatno su se zbližile zajedno učeći. Od početnog pitanja "Kako računalo pohranjuje broj  5 ? " pa preko prikaza prirodnih, negativnih i na kraju realnih brojeva, Sofija je shvatila kako je to čudesno zamišljeno.

Nama je jednostavnije raditi u dekadskome sustavu, a računalu u binarnom. Ipak je to stroj, zar ne?

Procijenite svoje znanje

Povratak na vrh