Zapisivanje brojeva
Cijeli brojevi (integer)
Cijele brojeve (engl. integer) u računalu jednostavno zapišemo binarno.
Odabiremo broj raspoloživih binarnih mjesta (bitova) za prikaz broja.
Raspon
0 do 255 u bajtu (0000 0000 do 1111 1111)
Zadatak: | Pohrani u bajt broj 57 |
---|
Negativni binarni brojevi
a) predznak + apsolutna vrijednost
Krajnji lijevi bit je 1 ako je broj negativan, ili 0 ako je broj pozitivan
+21 -> 00010101-21 -> 10010101
Ovaj zapis nije primjeren za računanje (zbroj 21 i -21 ne daje nulu!)
Raspon -127 do 127 u bajtu (1111 1111 do 0111 1111)
Imamo +0 i -0 ?!
Zadatak: | Pohrani u predznak i apsolutnu vrijednost broj -57 |
---|
b) dvojni komplement
21(10) =10101(2)
00010101 zapisano u bajtu
11101010 komplement (zamijeniti 0 i 1)
+ 1 (komplementu dodamo 1) ne zbrajati s 21, tj. brojem zapisanom u bajtu
11101011 dvojni komplement
Provjera: najvišoj potenciji dodamo predznak -, a ostalo pretvaramo kao uobičajeni binarni broj
Dakle: -128+64+32+8+2+1=-128+107=-21
Raspon: od -128 do 127 u bajtu (1000 000 do 0111 1111)
Zadatak: | Pohrani u dvojni komplement broj -57 |
---|
Zapisivanje realnih brojeva
Pretvorba realnih brojeva iz dekadskog u binarni sustav
4,35=?
4=100(2)
0,35*2=0,7
0,7*2=1,4
0,4*2=0,8
0,8*2=1,6
0,6*2=1,2
0,2*2=0,4
0,4*2=0,8
0,8*2=1,6
0,6*2=1,2...
0,35≈0,010110011...(2)
0,010110011(2)= 1·2-2+1·2-4+1·2-5+1·2-8+1· 2-9 = 0,349609375(10)
4,35=100,010110011(2)
Realni brojevi jednostruke točnosti (float - IEEE 754)
IEEE Standard 754 propisuje način zapisa realnih (decimalnih) brojeva u računalu uz korištenje tehnike pomičnog zareza.
Za prikaz brojeva u standardnoj jednostrukoj točnosti prema tom standardu računalo koristi 32 bita.
predznak |
KARAKTERISTIKA (eksponent+127) (8 bita) |
MANTISA bez vodeće jedinice (23 bita) |
||||||
31 |
30 |
… |
23 |
22 |
21 |
…. |
1 |
0 |
|
|
|
|
|
|
|
|
|
Eksponentu dodajemo 127 da bi izbjegli negativne eksponente
Primjer: zapisati 4,35 u IEEE754
4,35=100,010110011(2)
100,010110011=1,00010110011 *22 (pomaknuli smo zarez za 2 mjesta pa je potencija 2 na 2.)
2+127= 129 = 10000001(2)
Predznak | Eksponent+127 | Mantisa bez vodeće jedinice |
---|---|---|
0 | 10000001 | 00010110011000000000000 |
Gornji rezultat je dekadski 0,349609375(10) Da smo nastavili kod pretvaranja 0,35 sa množenjem dobili bi točniji rezultat (4,349999904632568):
Predznak | Eksponent+127 | Mantisa bez vodeće jedinice |
---|---|---|
0 | 10000001 | 00010110011001100110011 |
Zadatak: | Pohrani u IEEE 754 broj -57, 45 |
---|
Realni brojevi dvostruke točnosti
Za zapis koristimo 64 bita:
- 1 za predznak
- 11 za karakteristiku (eksponent +1023)
- 52 za mantisu (bez vodeće jedinice iz cijelog dijela broja)