Architektura systemów komputerowych | Punkty: |
---|---|
Imię i Nazwisko: - Dydo Karol - Tomasz Gierczak |
Temat: Liczby rzeczywiste. Reprezentacja zmiennoprzecinkowa. Standard IEEE 754. |
Wyznaczyć wartości binarne i dziesiętne(format znormalizowany pojedynczej precyzji) – w każdym przypadku podać szesnastkowo zawartość słowa 32 bitowego reprezentującego tę wartość:
Najmniejszej liczby dodatniej (> 0)
s | c | m |
---|---|---|
0 | 0 | 0 |
minIEEE 754 = 2-126
minIEEE 754 = 1,1754943508222875079687365372222e-38
minIEEE 754 = 1,17 x 10-38
Reprezentacja heksadecymalna = 0x00800000
Aby wyznaczyć najmniejszą dodatnia liczbę (> 0) wystarczy ustawić najmniejszy możliwy exponent, czyli -126 po czym wykonać działanie, bity mantysy zapełnić zerami oraz bit początkowy „S” na „0”.
Największej liczby dodatniej (< ∞)
s | c | m |
---|---|---|
0 | 1 | 1 |
maxIEEE 754 = (2-2-23) × 2127
maxIEEE 754 = 3,4028234663852885981170418348452 × 1038
maxIEEE 754 = 3,4 × 1038
Reprezentacja heksadecymalna = 0x7F7FFFFF
Aby wyznaczyć największą liczbę dodatnią (< ∞) należy ustawić największy możliwy exponent na 127 oraz mantysę wypełnić „jedynkami” a bit początkowy „S” ustawić na „0”. Następnie należy wymnożyć 2127 przez mantysę.
Najmniejszej liczby ujemnej (> - ∞)
s | c | m |
---|---|---|
1 | 0 | 0 |
minIEEE 754 = (-1) x 2-126
minIEEE 754 = - 1,1754943508222875079687365372222e-38
minIEEE 754 = - 1,17 x 10-38
Reprezentacja heksadecymalna = 0x 80800000
Najmniejsza liczba ujemna ( > - ∞) posiada część całkowitą, dlatego cecha posiada jedną „jedynkę”(jedynkę ustawiamy tak aby wykładnik wyniósł -126) oraz na „s” wstawiamy „jedynkę” i zmieniamy znak liczby.
Największej liczby ujemnej (< 0)
s | c | m |
---|---|---|
1 | 1 | 1 |
Wzór: maxIEEE 754 = (-1)S m × 2c
maxIEEE 754 = (-1) x ((2-2-23) × 2127)
maxIEEE 754 = - 3,4028234663852885981170418348452 × 1038
maxIEEE 754 = - 3,4 × 1038
Reprezentacja heksadecymalna = 0xFF7FFFFF
Największa liczba ujemna zapisana na 32bitach w standardzie IEEE754 w formacie znormalizowanym mniejsza od zera. Exp = 127(wykładnik), mantysa wypełniona samymi „jedynkami” oraz „s” ustawiony na „jeden” w celu zmiany znaku.
Zakodować liczbę 23.85 w formacie IEEE754 pojedynczej precyzji
Podać zawartość rejestru w notacji binarnej i szesnastkowej.
23.85 = 00010111.110(1100) = 1.0111110(1100) x 24
c = 4 + 127 = 132 = 10000011
Reprezentacja heksadecymalna = 0x41BECCCC
Najpierw zamieniamy liczbę dziesiętną na binarną. Osobno zamieniamy część całkowitą
i ułamkową, liczba 23 przyjmie postać 00010111 natomiast część ułamkowa 0.85 110(1100), gdzie (1100) występuje w okresie. Obie liczby oddzielamy przecinkiem
00010111.110(1100) i przesuwamy przecinek o cztery miejsca w lewo (24), wyliczamy cechę sumując „exponent” oraz „nadmiar” i otrzymaną liczbę zamieniamy na postać binarną. Następnie na koniec ustawiamy znak „s” w naszym przypadku będzie to „0” gdyż liczba jest dodatnia, potem zapisujemy cechę na ośmiu bitach oraz mantysę. Mantysę wypełniamy w następujący sposób, pierwsze 7 bitów wypełniamy(0111110) resztę 16bitów wypełniamy okresem(1100) .
s | c | m |
---|---|---|
0 | 1 | 0 |
Wyznaczyć błąd reprezentacji
Wzór ogólny: sign x 2exponent x mantissa
Exponent: 4 (ponieważ o tyle miejsc został przesunięty przecinek)
Wyznaczamy mantysę: 20 + 2-2 + 2-3 + 2-4 + 2-5 + 2-6 + 2-8 + 2-9 + 2-12 + 2-13 + 2-16 + 2-17 + 2-20 + 2-21 = 1.4906249
Podstawiamy pod wzór: 24 x 1.4906249 = 23.8499984
Wyznaczamy błąd reprezentacji: 23.85 - 23.8499984 = 0,0000016
Błąd reprezentacji wynosi: 0,0000016
Wyznaczyć wartości binarne i dziesiętne (format zdenormalizowany pojedynczej precyzji:
Najmniejszej liczby dodatniej (> 0)
m = 00,00000000000000000000001
m = 2-23
minIEEE 754 = 2-23 x 2-126 = 2-149
minIEEE 754 = 1,4012984643248170709237295832899e-45
s | c | m |
---|---|---|
0 | 0 | 0 |
Najmniejszą liczbę dodatnią w formacie zdenormalizowanym pojedynczej precyzji możemy przedstawić jako zapiś „m x 2-126”, a więc ustawiamy „jedynkę” na bicie „2-23” a następnie podstawiamy do wzoru i wymnażamy.
Największej liczby dodatniej
maxIEEE 754 = 00,11111111111111111111111
maxIEEE 754 = (1 – 2-23) x 2-126
maxIEEE 754 = 1.1754942E-38
s | c | m |
---|---|---|
0 | 0 | 0 |
Największą liczbą dodatnią w formacie zdenormalizowanym pojedynczej precyzji można przedstawić jako zapis potęg np. 20 + 2-1 + 2-2 + 2-3…i tak dalej aż do 2-23, następnie wszystkie potęgi dodać do siebie i wyliczyć mantysę po czym podstawić do wzoru. Lub zastosować skrócony zapis jak powyżej.
Najmniejszej liczby ujemnej
m = 00,00000000000000000000001
m = (-1) x 2-23
minIEEE 754 = (-1) x (2-23 x 2-126) = -(2-149)
minIEEE 754 = - 1,4012984643248170709237295832899e-45
s | c | m |
---|---|---|
1 | 0 | 0 |
Najmniejszą liczbę ujemną wyznaczamy dokładnie tak samo jak najmniejszą liczbę dodatnią, zmieniamy tylko bit początkowy „S” na „1” w celu zmiany znaku na przeciwny, minus.
Największej liczby ujemnej (< 0)
maxIEEE 754 = 00,11111111111111111111111
maxIEEE 754 = (-1) x ((1 – 2-23) x 2-126)
maxIEEE 754 = - 1.1754942E-38
s | c | m |
---|---|---|
1 | 0 | 0 |
Największą liczbę ujemną wyznacza się tak samo jak największą liczbę dodatnią, zmieniamy tylko znam, czyli na bicie początkowym „S” wstawiamy „1”.
Wnioski
Po wykonaniu powyższych ćwiczeń opanowaliśmy zakres materiału dotyczący reprezentacji liczb rzeczywistych
i reprezentacji zmiennoprzecinkowej w standardzie IEEE 754.