[ Pobierz całość w formacie PDF ]
Wprowadzenie do informatyki (ć w. 4)
ĆWICZENIA IV
Dwó jkowy system zmiennoprzecinkowy–
konwersja, zakresy, podstawowe działania
Zapis liczb zmiennoprzecinkowych składa się z następują cych elementó w:
•
m
– mantysy
•
p
– podstawy systemu
•
c
– cechy.
Wartość liczby zmiennoprzecinkowej
L
obliczamy według wzoru:
= ∗
.
W dwó jkowym 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
oraz
c
oraz
sposobu ich kodowania.
W ramach ć wiczeń będziemy operować na 8-mio bitowych dwó jkowych liczbach
zmiennoprzecinkowych, w któ rych 4 najstarsze bity są przeznaczone na zapis cechy w
kodzie U2, a 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 mantysa
b
7
b
6
b
5
b
4
b
3
b
2
b
1
b
0
Konwersja na system dziesię tny
1.
Oblicz wartość dziesiętną podanych zmiennoprzecinkowych liczb dwó jkowych.
a) 11110101 b) 00010100 c) 11010111 d) 11111001
Odp. a)
Obliczyć wartość liczby zmiennoprzecinkowej 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* 2
c
=
5
/
4
*2-
1
=
5
/
4
*
1
/
2
=
5
/
8
11110101
(FP)
=
5
/
8 (10)
Odp. b)
Obliczyć wartość liczby zmiennoprzecinkowej 00010100
(FP)
.
c = 0001
(U2)
0001
(U2)
= 1
(10)
m = 01,00
(U2)
01,00
(U2)
= 1
(10)
L
(FP)
= m* 2
c
= 1*2
1
= 2
00010100
(FP)
= 2
(10)
Izabela Szczęch
Strona 1
Wprowadzenie do informatyki (ć w. 4)
Konwersja na dwó jkowy system zmiennoprzecinkowy
2.
Wyznacz dwó jkową zmiennoprzecinkową reprezentację poniż szych liczb dziesiętnych
a) 2,5 b) -1,13 c) -3,5 d) 0,1 e) 192,5 f) -112
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.
Odp. a)
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
(U2)
c=0001
(U2)
m=0101
(U2)
Sprawdzenie wyniku:
L=00010101
(U2)
c=0001
(U2)
=1
(10)
m=01,01
(U2)
=0*(-2
1
)+ 2
0
+0*2
-1
+2
-2
=1
1
/
4
L= m* 2
c
= 1
1
/
4
* 2
1
=
5
/
4
*2 =
10
/
4
=2,5
00010101
(FP)
= 2,5
--------------------------------------------------------------------------------------------------------
Odp. b)
-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.
1,13
(10)
=01,00100001...
(U2)=(ZM)
By otrzymać zapis liczby przeciwnej do 1,13 (czyli zapis liczby -1,13) musimy, idą c
od prawej strony, przepisać wszystkie bity łą cznie z pierwszą napotkaną jedynką a
pozostałe bity zanegować .
+1,13
(10)
=01,00100001...
(U2)=(ZM)
-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.
Izabela Szczęch
Strona2
Wprowadzenie do informatyki (ć w. 4)
Wynik: -1,13
(10)
=00001011
(U2)
c=0000
(U2)
m=1011
(U2)
Jest to oczywiś cie wartość przybliż ona (dokładnie -1,25), bo -1,13 nie jest liczbą
maszynową .
Sprawdzenie wyniku:
L=00001011
(U2)
c=0000
(U2)
=0
(10)
m=10,11
(U2)
=1*(-2
1
)+0* 2
0
+1*2
-1
+1*2
-2
=-2+
1
/
2
+
1
/
4
=-
8
/
4
+
3
/
4
=-
5
/
4
L= m* 2
c
= -
5
/
4
* 2
0
= -
5
/
4
*1 = -
5
/
4
=-1,25
00001011
(FP)
= -1,25»-1,13
--------------------------------------------------------------------------------------------------------
Zakresy
3.
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.
Odp.
Wzó r L(FP) = m* 2
c
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
) = 1
3
/
4
=
7
/
4
Zatem max
(FP)
=
7
/
4
* 2
7
=
7
/
4
* 128 = 7 * 32 =
224
Wartość najmniejszą uzyskamy dla maksymalnej cechy i minimalnej mantysy.
Cechę maksymalną policzyliś my już powyż ej.
Minimalną mantysę reprezentuje kod:
10,00
(U2)
= -2
Zatem min
(FP)
= -2 * 2
7
= -2 * 128 =
-256
Stą d wszystkie liczby reprezentowane przez nasz kod zawierają się w przedziale:
Z
(FP)
= -256 ... 224
4.
Poniż 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).
To są jedyne
liczby maszynowe
, czyli liczby jakie przy tej reprezentacji moż na
dokładnie zapisać w komputerze. Pozostałe liczby rzeczywiste są wyraż ane z pewnym
przybliż eniem poprzez wykorzystanie liczb maszynowych.
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
Izabela Szczęch
Strona3
Wprowadzenie do informatyki (ć w. 4)
się one pojawiają (inaczej niż przy reprezentacji stałoprzecinkowej, gdzie
poszczegó lne liczby maszynowe były od siebie ró wno oddalone).
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.
5.
Któ ry element zapisu zmiennoprzecinkowego (cecha czy mantysa) odpowiada za
zakres reprezentowanych liczb, a któ ry za ich precyzję? Odpowiedź uzasadnij.
Izabela Szczęch
Strona4
Wprowadzenie do informatyki (ć w. 4)
Podstawowe działania – dodawanie i odejmowanie
Weźmy dwie liczby zmiennoprzecinkowe
=
∗ 2
oraz
=
∗ 2
Suma lub różnica tych dwó ch liczb wynosi:
±
=
∗ 2
±
∗2
±
=
∗ 2
∗
2
2
±
∗ 2
∗
2
2
±
=
∗ 2
∗ 2
±
∗ 2
2
2
2
±
=
2
∗ 2
±
2
∗ 2
±
=
2
±
2
∗ 2
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
2
.
Z kolei
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.
W systemie dwó jkowym operacja dzielenia przez 2 jest ró wnoważ na przesunięciu
wszystkich bitó w zapisu liczby o jedną pozycję w prawo (tak 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ą ilość 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).
6.
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)
Izabela Szczęch
Strona5
[ Pobierz całość w formacie PDF ]
© 2009 Po zniszczeniu przeszłości przyszedł czas na budowanie przyszłości. - Ceske - Sjezdovky .cz. Design downloaded from free website templates