FANDOM


Operandami algorytmów arytmetyki komputerowej są kody reprezentujące liczby. Do reprezentacji ułamków stusuje się reprezentację stało- lub zmiennoprzecinkową. Zbiór reprezentowanych wartości jest zbiorem dyskretnym i skończonych, charakteryzuje się prezycją wyników operacji na liczbach, rozdzielczością i zakresem liczb.


Reprezentacja zmiennoprzecinkowaEdit

Liczba zmiennoprzecinkowa reprezentowana jest jako trójka MBE (B oznacza od tej pory betę), gdzie M jest znacznikiem (significand, dawniej mantysa - mantissa), B - bazą reprezentacji (radix), E wykładnikiem (exponent). Liczba w takiej reprezentacji to:

 F = MBE

W celu reprezentowania liczb dodatnij i ujemnych stosuje się reprezentację znaku przy pomocy bitu. Od 1985 roku istnieje standard opisu liczb zmiennoprzecinkowych IEEE754 (wznowiony i uzupełniony w postaci IEE854 w 1987). Standard te przewiduje istnienie liczb zmiennoprzecinkowych reprezentowanych przez 32 bitową (pojedynczej precyzji):

 3      22      11      00      0
 1      43      65      87      0
 SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM

Bazą w reprezentacji dwójkowej jest 2, zatem liczbę można reprezentowac jako:

 F = S M 2E

Mantysa reprezentowana jest w przypadku liczb znormalizowanych jako wartość z ukrytą jedynką, znaczy to, że 11 i szereg 0 w mantysie to 1,11000000002 czyli 1,7510.

Arytmetyka zmienno- i stałoprzecinkowaEdit

W przypadku arytmetyki stałoprzecinkowej prawdziwe są wszystkie twierdzenia stosowane w systemie uzupełnieniowym (przemienność dodawania, dodawania względem mnożenia, itd.). Dodawanie i odejmowanie nie wymaga korekcji (może wystąpić przepełnienie). Mnożenie wymaga skalowania. Jeśli obie liczby mają 4 bity po przecinku - wynik będzie posiadał 8 bitów po przecinku, zatem:

      0010,0010
     x0001,1101
     ----------
       00100010
     00100010
    00100010
   00100010
 --------------
   001111011010
 czyli:
  0011,11011010
 czyli:
  0011,1101

W przypadku arytmetyki zmiennoprzecinkowej dodawanie i odejmowanie liczb wymaga dostosowania wykładnika mniejszego do większego i obarczone jest błędem w przypadku różnicy wykładników. Wzór (dla dodawania - zamienić na +):

 x1 - x2 = (M1 - M2BE2-E1)BE1

Jedna z mantys musi zostać zdenormalizowana, jeśli wykładniki się różnią.

Mnożenie: x1 x2 = (M1 M2)BE1+E2

Dzielenie: x1 / x2 = (M1 / M2)BE1-E2

Źródła informacjiEdit

  • Biernat J. Arytmetyka komputerów, Warszawa, PWN 1996, str. 8
  • Biernat J. Metody i układy arytmetyki komputerowej, Wrocław, Oficyna Wydawnicza Politechniki Wrocławskiej 2001

Pizdencja

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.