Liczby zmiennoprzecinkowe.

Komentarze

Transkrypt

Liczby zmiennoprzecinkowe.
Wprowadzenie do informatyki - ć wiczenia
Zmiennoprzecinkowy zapis
liczb wymiernych
dr inż . Izabela Szczęch
WSNHiD
Ćwiczenia z wprowadzenia do informatyki
Reprezentacja liczb wymiernych
§ Stałoprzecinkowa
§ bez znaku
§ ze znakiem
§ Zmiennoprzecinkowa
§ pojedynczej precyzji
§ podwó jnej precyzji
§ …
2
Izabela Szczęch
1
Wprowadzenie do informatyki - ć wiczenia
Plan zaję ć
n
Zapis zmiennoprzecinkowy - definicja i konwersje
n
Zakresy liczb w reprezentacji zmiennoprzecinkowej
n
Dokładnoś ć reprezentacji zmiennoprzecinkowej
n
Arytmetyka w reprezentacji zmiennoprzecinkowej
n
Problem utarty precyzji
n
Standardy reprezentacji zmiennoprzecinkowej
3
Zapis
zmiennoprzecinkowy
- definicja i konwersja
Izabela Szczęch
2
Wprowadzenie do informatyki - ć wiczenia
Wady zapisu stałoprzecinkowego
§ zapis bardzo duż ych lub bardzo małych liczb w notacji
stałoprzecinkowej jest niewygodny ponieważ wymaga
duż ej liczby znakó w
§ jeś li chcemy rozszerzyć zakres czy precyzję (liczbę
miejsc po przecinku) musimy uż yć większej liczby
znakó w
§ dwanaś cie bilionó w: 12 000 000 000 000
§ trzydzieś ci trylionó w: 30 000 000 000 000 000 000
§ jedna bilionowa: 0,000 000 000 001
5
Zapis zmiennoprzecinkowy
Zapis zmiennoprzecinkowy (ang. floating point numbers)
zwany ró wnież postacią wykładniczą, notacją naukowa
składa się z następujących elementó w:
§ m – mantysy, czyli liczby stałoprzecinkowej
§ p – podstawy systemu
§ c – cechy, czyli wykładnika potęgowego, do któ rego
podnosimy podstawę systemu
Wartoś ć liczby zmiennoprzecinkowej L obliczamy według
wzoru:
L( FP ) = m * p c
6
Izabela Szczęch
3
Wprowadzenie do informatyki - ć wiczenia
Zapis zmiennoprzecinkowy
§ Zapis zmiennoprzecinkowy wymaga znacznie mniejszej
liczby znakó w niż stałoprzecinkowy przy zapisie bardzo
duż ych lub bardzo małych liczb.
§ Przykład dla systemu dziesiętnego:
§ 12 000 000 000 000 = 1,2x1013
§ 30 000 000 000 000 000 000 = 3,0x1019
§ 0,000 000 000 001 = 1,0x10-12
7
Zapis zmiennoprzecinkowy
§ Położ enie przecinka w mantysie nie jest ustalone i moż e się
dowolnie zmieniać .
§ Poniż sze zapisy oznaczają tą samą liczbę:
325 x 10 20 = 32,5 x 1021 = 3,25 x 1022 = 0,0325 x 10 24, itd.
§ Zmiana położ enia przecinka w mantysie wpływa na wartoś ć
cechy liczby:
§ przesunięcie przecinka o 1 pozycję w lewo wymaga
zwiększenia cechy o 1.
§ przesunięcie przecinka o 1 pozycję w prawo wymaga
zmniejszenia cechy o 1.
8
Izabela Szczęch
4
Wprowadzenie do informatyki - ć wiczenia
Znormalizowany zapis
Znormalizowana liczba zmiennoprzecinkowa to taka, w któ rej
mantysa spełnia nieró wnoś ć :
p>|m| ≥1
Według tej definicji postacią znormalizowaną dla zapisó w:
325 x 10 20 = 32,5 x 1021 = 3,25 x 1022 = 0,0325 x 10 24
jest jedynie zapis 3,25 x 10 22.
9
Binarny zapis zmiennoprzecinkowy
§ W binarnym systemie zmiennoprzecinkowym
m, p oraz c zapisane są dwó jkowo, a podstawa p jest
zawsze ró wna 2.
§ Z racji, ż e podstawa jest zawsze znana, do zapisania
dwó jkowej liczby zmiennoprzecinkowej wystarczy
podanie wartoś ci m, c oraz sposobu ich kodowania.
10
Izabela Szczęch
5
Wprowadzenie do informatyki - ć wiczenia
Binarny zapis zmiennoprzecinkowy
§ W ramach ć wiczeń będziemy operować na
8-mio bitowych dwó jkowych liczbach
zmiennoprzecinkowych (FP), w któ rych:
§ 4 najstarsze bity są przeznaczone na zapis cechy w
kodzie U2,
§ pozostałe 4 bity są na zapis mantysy ró wnież w
kodzie U2. Przyjmijmy też , ż e mantysa jest liczbą
stałoprzecinkową (w kodzie U2) z dwoma miejscami
po przecinku.
cecha
b7
b6
b5
mantysa
b4
b3
b2
b1
b0
11
Konwersja binarnego zapisu FP
na system dziesię tny
Przykład:
Oblicz wartoś ć dziesiętną zmiennoprzecinkowej dwó jkowej
liczby 11110101(FP).
c = 1111(U2)
1111(U2) = -8+4+2+1= -1(10)
m = 01,01(U2)
01,01(U2) = 1+ 1/4
L(FP) = m* 2c = 5/4*2-1 = 5/4*1/2 = 5/8
11110101 (FP) = 5/8 (10)
12
Izabela Szczęch
6
Wprowadzenie do informatyki - ć wiczenia
Konwersja binarnego zapisu FP
na system dziesię tny
Zadania:
Oblicz wartoś ć dziesiętną następujących
zmiennoprzecinkowych liczb dwó jkowych:
a) 00010100 (FP)
b) 11010111(FP)
c) 11111001(FP)
13
Konwersja z systemu dziesię tnego
na zapis FP
Algorytm przeliczania liczby dziesiętnej na liczbę
zmiennoprzecinkową w innym systemie pozycyjnym:
§ Przeliczamy daną liczbę dziesiętną na liczbę w systemie
docelowym. Wynik jest wartoś cią mantysy przy cesze
ró wnej 0.
§ Normalizujemy mantysę modyfikując przy tym
odpowiednio cechę liczby.
14
Izabela Szczęch
7
Wprowadzenie do informatyki - ć wiczenia
Konwersja z systemu dziesię tnego
na zapis FP
Przykład 1:
Wyznacz dwó jkową zmiennoprzecinkową reprezentację liczby 2,5(10)
2,5(10)=?(U2)
Z racji, ż e jest to stałoprzecinkowa liczba dodatnia, to z kodzie U2
wygląda tak samo jak w Znak-moduł. Konwertujemy ją zatem na ZM.
Dostajemy: 2,5(10)=010,1(U2)
Tak by wyglądała reprezentacja przy cesze = zero czyli 0000(U2).
Ale chcemy reprezentację z dwoma miejscami po przecinku, musimy
więc przesunąć wszystkie bity o jedną pozycję w prawo i zwiększyć
cechę o jeden.
Wynik: 2,5(10)=00010101(FP)
c=0001(U2), m=0101(U2)
15
Konwersja z systemu dziesię tnego
na zapis FP
Sprawdzenie wyniku:
L = 00010101(U2)
c = 0001(U2) = 1(10)
m = 01,01(U2) = 0*(-21) + 1*20 + 0*2-1 + 2-2=11/4
L = m* 2c = 11/4 * 21 = 5/4*2 = 10/4=2,5
00010101(FP) = 2,5(10)
16
Izabela Szczęch
8
Wprowadzenie do informatyki - ć wiczenia
Konwersja z systemu dziesię tnego
na zapis FP
Przykład 2:
Wyznacz dwó jkową zmiennoprzecinkową reprezentację liczby -1,13(10)
-1,13(10)=?(U2)
Z racji, ż e jest to stałoprzecinkowa liczba UJEMNA, to aby ją
przedstawić w kodzie U2, szukamy najpierw zapisu wartoś ci 1,13 w
kodzie U2 (któ ry jest toż samy z zapisem w kodzie Znak-moduł), a
następnie szukamy liczby przeciwnej (przepisać wszystkie bity łącznie z
pierwszą napotkaną jedynką a pozostałe bity zanegować ).
+1,13(10) = 01,00100001...(U2)=(ZM)
Jest to oczywiś cie wartoś ć przybliż ona (1,1289… ), bo 1,13 nie jest liczbą
maszynową.
-1,13(10) = 10,11011111(U2)
Tak by wyglądała reprezentacja przy cesze = zero czyli 0000(U2).
17
Konwersja z systemu dziesię tnego
na zapis FP
Przykład 2:
-1,13(10) = 10,11011111(U2)
Tak by wyglądała reprezentacja przy cesze = zero czyli 0000(U2).
Mamy tylko dwa miejsca przed przecinkiem (nie zawierające samych
zer), nie musimy zatem przesuwać bitó w. Cecha pozostanie bez zmian.
Wynik: -1,13(10) = 00001011(FP)
c=0000(U2), m=1011(U2)
18
Izabela Szczęch
9
Wprowadzenie do informatyki - ć wiczenia
Konwersja z systemu dziesię tnego
na zapis FP
Sprawdzenie wyniku:
L = 00001011(U2)
c = 0000(U2) = 0(10)
m = 10,11(U2) = 1*(-21) + 0*20 + 1*2-1 + 1*2-2 = -2+1/2 + 1/4 = -8/4 + 3/4 = -5/4
L = m* 2c = -5/4 * 20 = -5/4*1 = -1,25
00001011 (FP) = -1,25 » -1,13
19
Konwersja z systemu dziesię tnego
na zapis FP
Zadania:
Wyznacz dwó jkową zmiennoprzecinkową reprezentację
poniż szych liczb dziesiętnych :
a)
b)
c)
d)
-3,5
0,1
192,5
-112
20
Izabela Szczęch
10
Wprowadzenie do informatyki - ć wiczenia
Zakresy liczb
w reprezentacji
zmiennoprzecinkowej
Zakresy liczb zmiennoprzecinkowych
§ Wyznacz zakres dwó jkowych liczb zmiennoprzecinkowych
reprezentowanych na 8-miu bitach
(cecha w U2 to najstarsze 4 bity, pozostałe to mantysa w
U2 z dwoma miejscami po przecinku).
§ Poró wnaj wynik z zakresem liczb stałoprzecinkowych
reprezentowanych na 8-miu bitach w kodzie znak-moduł z
4 miejscami po przecinku.
22
Izabela Szczęch
11
Wprowadzenie do informatyki - ć wiczenia
Zakresy liczb zmiennoprzecinkowych
§ Wzó r L(FP) = m* 2c przyjmuje wartoś ć maksymalną dla
maksymalnej cechy i maksymalnej mantysy.
§ Cecha przyjmie wartoś ć maksymalną dla kodu:
0111(U2) = 7(10)
§ Mantysa największą wartoś ć przyjmie dla kodu:
01,11(U2) = 13/4 = 7/4
§ Zatem max(FP) = 7/4* 27 = 7/4* 128 = 7 * 32 = 224
23
Zakresy liczb zmiennoprzecinkowych
§ Wartoś ć najmniejszą uzyskamy dla maksymalnej cechy i
minimalnej mantysy.
§ Cechę maksymalną: 0111(U2) = 7(10)
Minimalną mantysę reprezentuje kod: 10,00(U2) = -2(10)
§ Zatem min(FP) = -2 * 27 = -2 * 128 = -256
§ Stąd wszystkie liczby reprezentowane przez nasz kod
zawierają się w przedziale:
Z(FP) = -256 ... 224
§ Na 8-miu bitach w kodzie znak-moduł z 4 miejscami po
przecinku moż na reprezentować liczby w przedziału
<1111,1111(ZM) ; 0111,1111(ZM)>
czyli z przedziału od -715/16 (10) do 715/16 (10).
Izabela Szczęch
24
12
Wprowadzenie do informatyki - ć wiczenia
Dokładność
reprezentacji
zmiennoprzecinkowej
mantysa
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 11001101 11101111
0000
0001
1/
0
1/
4
2
1/
2
1
3/
4
11/
2
1
11/4
2
21/
2
11/2 13/4
3
31/
2
-2
-13/4 -11/2 -11/4
-4
-31/
2
-3
-21/
2
-1
-3/4
-1/2
-1/4
-2
-11/
-1
-1/2
2
0010
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
0011
0
2
4
6
8
10
12
14
-16
-14
-12
-10
-8
-6
-4
-2
0100
0
4
8
12
16
20
24
28
-32
-28
-24
-20 -16 -12
-8
-4
0101
0
8
16
24
32
40
48
56
-64
-56
-48
-40 -32 -24 -16
-8
80
96
112 -128 -112 -96
c 0110
e
c 0111
h
1000
a
1001
Izabela Szczęch
0
0
16
32
48
64
-80 -64 -48 -32
-16
0
32
64
96
128 160 192 224 -256 -224 -196 -180 -128 -96 -64
-32
0
1/
1024
1/
512
256
3/
128
3/
128
0
1/
512
1/
1010
0
1/
256
1/
1011
0
1/
128
1100
0
1/
1101
0
1/
1110
0
1/
1111
0
1/
1/
256
512
1/
128
256
1/
1/
1024
5/
1024
5/
512
256
7/
512
-1/64 -7/512 -3/256 -5/512 -1/128 -3/512 -1/256 -1/512
128
7/
256
-1/32 -7/256 -3/128 -5/256 -1/64 -3/256 -1/128 -1/256
128
-1/16 -7/128 -3/64 -5/128 -1/32 -3/128 -1/64 -1/128
512
3/
64
256
3/
32
5/
128
16
5/
64
3/
64
32
3/
64
1/
32
1/
16
3/
32
1/
8
5/
16
1/
8
3/
16
1/
4
5/
1/
4
3/
1/
2
5/
8
3/
5/
1/
8
1/
3/
1024
-1/128 -7/1024 -3/512 -5/1024 -1/256 -3/1024 -1/512 -1/1024
64
7/
64
3/
32
7/
64
-1/8
-7/64 -3/32 -5/64 -1/16 -3/64 -1/32 -1/64
32
3/
16
7/
32
-1/4
-7/32 -3/16 -5/32 -1/8 -3/32 -1/16 -1/32
16
3/
8
7/
16
-1/
-7/16
-3/8
-5/16 -1/4 -3/16 -1/8
3/
4
7/
-7/8
-3/4
-5/8
8
3/
7/
8
2
-1
-1/2
-3/8
-1/4
-1/16
-1/8
26
13
Wprowadzenie do informatyki - ć wiczenia
Dokładność reprezentacji FP
§ Powyż sza tabela zawiera wszystkie wartoś ci, jakie moż e
reprezentować zmiennoprzecinkowy kod przeznaczający
po 4 bity na zapis cechy i mantysy w kodzie U2
(w mantysie dwa miejsca są po przecinku).
§ Są to JEDYNE liczby maszynowe, czyli liczby jakie przy tej
reprezentacji moż na dokładnie zapisać w komputerze.
Pozostałe liczby wymierne są wyraż ane z pewnym
przybliż eniem poprzez wykorzystanie liczb maszynowych.
27
Dokładność reprezentacji FP
Zadania:
§ Przeanalizuj gęstoś ć ułoż enia na osi wartoś ci dziesiętnych
odpowiadających dwó jkowym zmiennoprzecinkowym
liczbom maszynowym.
Zwró ć uwagę, ż e liczb maszynowych w okolicy zera jest
stosunkowo wiele, a im dalej od zera tym rzadziej się one
pojawiają (inaczej niż przy reprezentacji stałoprzecinkowej,
gdzie poszczegó lne liczby maszynowe były od siebie
ró wno oddalone).
§ Okreś l, któ ry element zapisu zmiennoprzecinkowego
(cecha czy mantysa) odpowiada za zakres
reprezentowanych liczb, a któ ry za ich precyzję?
Odpowiedź uzasadnij.
Izabela Szczęch
28
14
Wprowadzenie do informatyki - ć wiczenia
Nadmiar i podmiar
§ W reprezentacji zmiennoprzecinkowej nadmiarem nazywamy
sytuację, gdy liczba jest tak duż a (co do modułu), ż e nie
zawiera się w przedziale liczb reprezentowalnych,
a podmiarem sytuację, gdy liczba jest tak mała (co do
modułu), ż e musi być reprezentowana przez zero.
29
Arytmetyka
w reprezentacji
zmiennoprzecinkowej
Izabela Szczęch
15
Wprowadzenie do informatyki - ć wiczenia
Dodawanie i odejmowanie
§ Suma lub ró ż nica dwó ch liczb zmiennoprzecinkowych L1 i L2
wynosi:
L1 ± L2 = m1 * 2 c1 ± m2 * 2 c2
L1 ± L2 = m1 * 2 c1 *
L1 ± L2 =
L1 ± L2 =
2 c2
2 c2
m1 * 2 c1 * 2 c2
2 c2
m1
2
c2
* 2 c1 + c2 ±
± m2 * 2 c 2 *
±
2 c1
m2 * 2 c2 * 2 c1
2 c1
m2
2
2 c1
c1
* 2 c1 + c2
m ö
æm
L1 ± L2 = ç c1 ± c2 ÷ * 2 c1 + c2
è2 2 2 1 ø
31
Dodawanie i odejmowanie
§ Mantysa sumy (lub ró ż nicy) jest sumą (lub ró ż nicą) mantys
liczb wyjś ciowych po wyró wnaniu ich cech czyli po
sprowadzeniu ich do wspó lnej cechy 2c1+c2.
§ Cecha sumy (lub ró ż nicy) jest ró wna sumie cech
dodawanych (lub odejmowanych) liczb.
§ Po wykonaniu operacji arytmetycznej mantysa wyniku jest
sprowadzana do postaci znormalizowanej i zapamiętywana
w kodzie liczby zmiennoprzecinkowej.
32
Izabela Szczęch
16
Wprowadzenie do informatyki - ć wiczenia
Dodawanie i odejmowanie
§ W systemie dwó jkowym operacja dzielenia przez 2 jest
ró wnoważ na przesunięciu wszystkich bitó w zapisu liczby o jedną
pozycję w prawo (jak w systemie dziesiętnym podział przez 10).
§ Z kolei mnoż enie przez 2 odpowiada przesunięciu wszystkich
cyfr o jedną pozycję w lewo.
§ Dzielenie lub mnoż enie przez potęgi liczby 2 jest zatem
przesuwaniem wszystkich bitó w o odpowiednią liczbę pozycji
(ró wną wykładnikowi potęgi liczby 2) w lewo (mnoż enie) lub w
prawo (dzielenie).
§ Obie operacje są bardzo proste i nie wymagają wykonywania
ż adnych działań arytmetycznych (w procesorze realizują je
układy zwane rejestrami przesuwnymi - ang. shift registers).
33
Zadania
Zadania:
Wykonaj poniż sze działania na liczbach zmiennoprzecinkowych, a następnie sprawdź poprawnoś ć obliczeń
konwertując liczby na system dziesiętny:
a) 11110100(FP) + 11100110(FP)
b) 01001000 (FP) + 00111100(FP)
c) 01110101(FP) - 01100101(FP)
d) 01100101(FP) - 01110101(FP)
34
Izabela Szczęch
17
Wprowadzenie do informatyki - ć wiczenia
Rozwią zanie (b)
01001000 (FP) + 00111100(FP)
Z zapisu zmiennoprzecinkowego wydobywamy cechy i
mantysy obu liczb:
c1 = 0100 (U2) = 4; m1 = 10,00 (U2)
c2 = 0011(U2) = 3; m2 = 11,00(U2)
Pierwszą mantysę musimy podzielić przez 23 zatem bity
przesuwamy o 3 pozycje w prawo (brakujące pozycje z przodu
wypełniamy jedynkami, bo jest to liczba ujemna; odpowiada to
dopisywaniu zer przed liczbą dodatnią):
m1 = 1,11000(U2)
Drugą mantysę musimy podzielić przez 24, zatem bity
przesuwamy o 4 pozycję w prawo:
m2 = 1,111100(U2)
35
Rozwią zanie (b)
Obliczamy mantysę sumy:
1,11000
+ 1,111100
------------1,101100
m1 + m2 = 1,101100 (U2)
Obliczamy cechę sumy:
0100
+ 0011
-----------0111
c1 + c2 = 0111 (U2)
36
Izabela Szczęch
18
Wprowadzenie do informatyki - ć wiczenia
Rozwią zanie (b)
Mantysę sumy sprowadzamy do postaci znormalizowanej:
c = 0111(U2) ; m = 1,101100 (U2) – jedynki z przodu liczby
ujemnej są nieznaczące (tak jak zera przed liczbą dodatnią),
pierwszym miejscem znaczącym jest druga od lewej jedynka.
Mamy mieć dwie pozycje przed przecinkiem, musimy zatem
przesunąć bity o 2 pozycje lewo i zmniejszyć cechę o 2
c = 0111(U2) -0010(U2) =0101(U2);
m = 10,11(U2)
Otrzymaną cechę i mantysą łączymy w jeden kod i
otrzymujemy wynik operacji dodawania:
01001000 (FP) + 00111100(FP) = 01011011(FP).
37
Rozwią zanie (b)
Sprawdźmy, czy wynik jest prawidłowy. W tym celu posługując
się tabelką wyznaczamy wartoś ci poszczegó lnych liczb
zmiennoprzecinkowych:
01001000 (FP) = -32
00111100(FP) = -8
01011011(FP) =-40
-32+(-8)=-40 - wynik prawidłowy.
38
Izabela Szczęch
19
Wprowadzenie do informatyki - ć wiczenia
Nadmiar - przykład
Zaobserwuj zjawisko nadmiaru pró bując wykonać dodawanie:
01110101(FP) + 01100101(FP)
(czyli 160(10) + 80(10))
Wydobywamy cechy i mantysy:
c1 = 0111(U2) = 7; m1 = 01,10(U2)
c2 = 0110(U2) = 6; m2 = 01,10(U2)
Pierwszą mantysę przesuwamy o 6 bitó w w prawo,
a drugą o 7 bitó w w prawo:
m1 = 00,000000101 (U2);
m2 = 00,00000101 (U2)
Sumujemy cechy i mantysy:
m1 + m2 = 00,000001111 (U2) ;
c1 + c2 = 1101(U2)
Nie uda nam się znormalizować mantysy bez utraty precyzji,
to nam sygnalizuje problem, któ ry w tym przykładzie wynika z
wystąpienia nadmiaru.
39
Utrata precyzji
Izabela Szczęch
20
Wprowadzenie do informatyki - ć wiczenia
Utrata precyzji
Zadanie:
Zsumuj duż ą i małą liczbę i przeanalizuj wynik:
01000110(FP) + 00010110(FP)
czyli 24(10) + 3(10)
41
Utrata precyzji
01000110(FP) + 00010110(FP)
(czyli 24(10) + 3(10))
Wydobywamy cechy i mantysy:
c1 = 0100(U2) = 4; m1 = 01,10(U2)
c2 = 0001(U2) = 1; m2 = 01,10(U2)
Pierwszą mantysę przesuwamy o 1 bit w prawo, a drugą o 4 bity w prawo:
m1 = 00,11000(U2);
m2 = 00,00011(U2)
Sumujemy cechy i mantysy:
m1 + m2 = 00,11011(U2);
c1 + c2 = 0101(U2)
Normalizujemy mantysę wyniku:
c = 0100(U2);
m = 01,10110(U2)
Wynik dodawania: 01000110(FP) + 00010110(FP) = 01000110(FP) = 24(10).
42
Izabela Szczęch
21
Wprowadzenie do informatyki - ć wiczenia
Utrata precyzji
§ Wnioski:
suma jest ró wna pierwszej z sumowanych liczb.
Dodanie drugiej liczby nie wpłynęło na wynik sumowania.
Nastąpiła utrata precyzji.
§ W systemie zmiennoprzecinkowym sumowanie liczby duż ej
z liczbą małą moż e być niedokładne z uwagi na utratę
precyzji. Dlatego sumując ciąg liczb zawsze sumujmy od
wartoś ci najmniejszych do największych.
43
Standardy reprezentacji
zmiennoprzecinkowej
Izabela Szczęch
22
Wprowadzenie do informatyki - ć wiczenia
Format IEEE 754
§ Aby ujednolicić wyniki obliczeń numerycznych
wykonywanych na ró ż nych platformach sprzętowych,
wprowadzono ś ciś le okreś lony standard zapisu
zmiennoprzecinkowego IEEE 754.
§ Pełna nazwa standardu to: IEEE Standard for Binary
Floating-Point Arithmetic
§ Pierwsza wersja standardu obowiązywała od 1985r,
najnowsza, pod nazwą IEEE 754-2008, została
opublikowana w sierpniu 2008
§ Obecnie praktycznie wszystkie implementacje sprzętowe
liczb zmiennoprzecinkowych oparte są o ten standard
45
Format IEEE 754
§ Standard IEEE 754(-1985, -2008) definiuje dwie
podstawowe klasy binarnych liczb zmiennoprzecinkowych:
§ binary 32 - pojedynczej precyzji (ang. single-precision)
§ binary 64 - podwó jnej precyzji (ang. double-precision)
Format
Bit znaku
Bity
cechy
Bity mantysy
32 bity - pojedyncza 1 bit
precyzja
8 bitó w
23 bity
64 bity - podwó jna
precyzja
11 bitó w
52 bity
1 bit
§ Standard IEEE 754-2008 rozszerza też wersję IEEE 7541985 o definicje kilku formató w dziesiętnych liczb
zmiennoprzecinkowych
Izabela Szczęch
46
23
Wprowadzenie do informatyki - ć wiczenia
Format IEEE 754
Reprezentacja zmiennoprzecinkowa IEEE 754 pojedynczej precyzji
•bit znaku: 0 oznacza liczbę dodatnią, 1 ujemną
•cecha zapisywana jest w kodzie z nadmiarem (dla 8-mio
bitowego zapisu nadmiar wynosi 127, zatem w polu cechy
moż na zapisać wartoś ci od -127 do 128)
•mantysa zapisywana jest w stałoprzecinkowym kodzie U1.
47
Format IEEE 754
§ Standard IEEE 754-2008 definiuje nie tylko sposó b
reprezentacji liczb, ale takż e:
§ sposó b reprezentacji specjalnych wartoś ci, np.
nieskończonoś ci, zera
§ sposó b wykonywania działań na liczbach
zmiennoprzecinkowych
§ sposó b zaokrąglania liczb
48
Izabela Szczęch
24