39037

39037



162


ROZDZIAŁ 22. ZAAWANSOWANE OPERACJE MATEMATYCZNE

Prezentacja liczb rzeczywistych w pamięci komputera

Być może ten temat może wydać Ci się niepotrzebnym, lecz w wielu książkach nie ma w ogóle tego tematu. Dzięki niemu zrozumiesz, jak komputer radzi sobie z przecinkiem oraz dlaczego niektóre obliczenia dają niezbyt <lokładne wyniki. Na początek trochę teorii: do przechowywania liczb rzeczywistych przeznaczone są 3 typy: f loat. double oraz long double. Zajmują one odpowiednio 32, 64 oraz 80 bitów. Wiemy też, że komputer nie ma fizycznej możliwości zapisania przecinka. Spróbujmy teraz zapisać jakąś liczbę wymierną w formie liczb binarnych. Nasza liczba to powiedzmy 4.25. Spróbujmy ją rozbić na sumę potęg dwójki: 4 = 1 *22 4- 0*2* +0*2°. Dobra rozpisaliśmy liczbę 4, ale co z częścią dziesiętną? Skorzystajmy z zasad matematyki 0.25 = 2“2. Zatem nasza liczba |>owinua wyglądać tak:    100.01

Ponieważ komputer nie jest w stanie przechować pozycji przecinka, ktoś wpadł na prosty ale sprytny pomysł ustawienia przecinka jak najbliżej początku liczby i tylko mnożenia jej przez odpowiednią potęgę dwójki. Taki sposób przechowywania liczb nazywamy zmiennoprzecinkowym. a proces przekształcania naszej liczby z postaci czytelnej przez człowieka na format zmiennoprzecinkowy nazywamy normalizacją. Wróćmy do naszej liczby 4.25. W postaci binarnej wygląda ona tak: 100.01, natomiast po normalizacji będzie wyglądała tak: 1.0001*22. W ten sposób w pamięci komputera znajdą się dwie informacje: liczba zakodowana w pamięci z ‘“wirtualnym" przecinkiem oraz numer potęgi dwójki. Te dwie informacje wystarczają do przechowania wartości liczby. Jednak pojawia się inny problem co się stanie, jeśli np. I>ę<lziemy chcieli przełożyć liczbę typu Otóż tutaj wychodzą na wierzch pewne niedociągnięcia komputera w dziedzinie samej matematyki. 1/3 daje w rozwinięciu dziesiętnym 0.(3). Jak zatem zapisać taką liczbę? Otóż nie możemy przechować całego jej rozwinięcia (wynika to z ograniczeń typu danych — ma on niestety skończoną liczbę bitów). Dlatego przecłiowuje się tylko pewne przybliżenie liczby. Jest ono tym bardziej dokładne im dany typ ma więcej bitów. Zatem do obliczeń wymagających dokładnych danych powinniśmy użyć typu double lub long double. Na szczęście w większości przeciętnych programów tego typu problemy zwykk* nie występują. A ponk*waż początkujący programista nie odpowiada za tworzenie programów sterujących np. lotem statku kosmicznego, więc drobne przekłamania na odległych miejscach po przecinku nie stanowią większego problemu.

Liczby zespolone

Operacje na liczbach zespolonych są częścią uaktualnionego standardu języka C o nazwie C99, który jest obsługiwany jedynie przez część kompilatorów

Podane tutaj informacje zostały sprawdzone na systemie Gentoo Linux z biblioteką GNU libc w wersji 2.3.5 i kompilatorem GCC w wersji 4.0.2

Dotychczas korzystaliśmy tylko z liczb rzeczywistych, k:cz najnowsze standardy języka C umożliwiają korzystanie także z innych liczb np. z liczb zesjHilonych.

Aby móc korzystać z liczb zespolonych w naszym programie należy w nagłówku programu umieścić następującą linijkę:

ftinclude <complex.h>

Wiemy, że liczba zespolona zdeklarowana jest następująco:

z ■ a*b*i, gdzie a, b są liczbami rzeczywistymi, a i*i»(-l).

W pliku complex.h liczba i zdefiniowana jest jako I. Zatem wypróbujmy możliwości liczb zespolonych:



Wyszukiwarka

Podobne podstrony:
MATEMATYKA018 28 I. Wiadomości wstąptt* funkcji f jest zbiór liczb rzeczywistych y£l, czyli przedzia
MATEMATYKA018 28 I. Wiadomości wstąptt* funkcji f jest zbiór liczb rzeczywistych y£l, czyli przedzia
28490 zabawy 2520matematyczne0046 Zabawy matematyczne jlglt Ćwiczenia myślenia operacyjnegoLiczebnik
Zadaniewww.matemaks.pl Funkcja /, której dziedziną jest zbiór wszystkich liczb rzeczywistych, jest
10 Podstawy teorii liczb przeprowadzanie wielu operacji matematycznych. Definicja 1.5.1 (relacja
22 Liczby rzeczywiste Ze względu na dodawanie zbiór liczb rzeczywistych, ma więc wszystkie podstawow
Rozdział 22Zaawansowane operacje matematyczneBiblioteka matematyczna Aby móc korzystać z wszystkie!)
p1080136 wymiga piwstawicń liczb oraz używana mn«h operacji matematycznych nu ic. które wynikaj* / t
CCF20081027025 Zabawy matematyczne ^ Ćwiczenia myślenia operacyjnegoLiczebniki główneOdróżnianie li
DSCN1098 (2) 7.49. W zbiorze liczb rzeczywistych R określono działanie * w ten sposób, że mnożenie j

więcej podobnych podstron