« poprzedni punkt |
Niech będą dane dwie liczby zmiennopozycyjne A i B. Oznaczmy mantysy tych liczb przez MA i MB a wykładniki przez WA i WB. Aby pomnożyć (lub podzielić) te liczby należy obliczyć: MA x MB (MA : MB) oraz WA + WB (WA - WB). Jako rezultat otrzyma się postać zmiennopozycyjną, gdzie:
Może się zdarzyć, że otrzymana mantysa wyniku nie będzie znormalizowana. Wtedy należy dokonać normalizacji i odpowiednio zmodyfikować wykładnik.
Przykład
Pomnóżmy dwie liczby -1/410 i +2010.
Mantysa wyniku powstała przez pomnożenie 0.100000 przez 0.101000. Wynik mnożenia 0.010100 jest nieznormalizowany, więc mantysę należy znormalizować (zwiększyć) a wykładnik zmniejszyć. Ostatecznie otrzymamy:
Sprawdzając otrzymamy, że mantysa wynosi 0.62510 a wykładnik +310. Wynik mnożenia to -0.625 x 23 = -0.625 x 8 = -5.
Dodawanie (lub odejmowanie) liczb zmiennopozycyjnych wymaga aby miały one takie same wykładniki. Mówimy, że należy wyrównać wykładniki. Można to zrobić na dwa sposoby. Można zmniejszyć wykładnik większy ( zwiększając mantysę) lub zwiększyć wykładnik mniejszy (zmniejszając mantysę). Dla ułatwienia dodawania (odejmowania) stosuje się ten drugi sposób i wyrównania dokonuje się przez zwiększanie wykładnika mniejszego i zmniejszanie mantysy tej liczby (denormalizuje się ją). Gdyby zastosować pierwszy sposób, to zwiększając mantysę stałaby się ona większa od 1 i dodawanie (odejmowanie) wymagałoby uwzględniania miejsca położenia przecinka.
Po wyrównaniu wykładników oblicza się sumę mantys MA + MB, jeśli znaki liczb są takie same lub różnicę mantys MA - MB, jeśli znaki są przeciwne. Obliczając różnicę należy wybrać większą mantysę i od niej odjąć mantysę mniejszą, a jako znak wyniku należy przyjąć znak większej mantysy. Może się zdarzyć, że otrzymana mantysa wyniku nie będzie znormalizowana. Wtedy należy dokonać jej normalizacji i odpowiednio zmodyfikować wykładnik.
Przykład
Dodajmy liczby -410 i 2010
Liczba -410 ma mniejszy wykładnik niż liczba +2010. Zwiększając wykładnik liczby -410 otrzymamy:
Od mantysy większej odejmując mniejszą otrzymamy:
0.10100000 - 0.00100000 0.10000000
Mantysa większa jest dodatnia więc w wyniku otrzymamy:
Ponieważ w tym przypadku mantysa wyniku jest znormalizowana, to otrzymany wynik jest wynikiem ostatecznym. Wynikiem jest liczba +0.5 x 25 czyli +1610.
« poprzedni punkt |