147 Shares 7089 views

Jakie są liczby zmiennoprzecinkowe?

Prezentacja rzeczywistych (lub rzeczywistych) cyfr, gdzie są one przechowywane jako mantysa i wykładnik są liczb zmiennoprzecinkowych (być może punktu, w sposób zwyczajowo przyjęty w krajach anglojęzycznych). Mimo to liczba jest o stałej względnej dokładności i zmianę charakteru absolutnego. Reprezentacja który jest używany najczęściej, zatwierdzony standard IEEE 754. operacje matematyczne, które używają liczb zmiennoprzecinkowych są realizowane w systemach computing – zarówno sprzętu i oprogramowania.

Punkt lub przecinek

Szczegółowy wykaz separator dziesiętny identyfikuje tych krajów anglojęzycznych i anglofitsirovannye, gdzie zapisy liczb oddzielonych ułamkową część całego punktu, ponieważ terminologia z tych krajów przyjęła nazwę zmiennoprzecinkowych – „floating point”. W Federacji Rosyjskiej, ułamkową część całej tradycji, oddzielone przecinkiem, więc oznacza to samo pojęcie historycznie uznane określenie „pływający” punkt. Jednak dzisiaj w dokumentacji technicznej i literatury rosyjskiej dopuszcza obie opcje.

Określenie „floating point” pochodzi z faktu, że reprezentacja pozycyjna liczba jest przecinek (normalny dziesiętny lub binarny – komputer), które można zmieścić w dowolnym miejscu między numerami linii. Funkcja ta z pewnością go zastrzec oddzielnie. Oznacza to, że reprezentacja liczb zmiennoprzecinkowych można uznać za realizację komputerowej notacji wykładniczej. Zaletą wykorzystania takiego reprezentację formatu przedstawienie stałym punktem i liczb całkowitych, że zakres wartości wzrasta znacznie gdy to dokładność względna pozostaje niezmieniona.

przykład

Jeżeli przecinek w liczbie stałe, a następnie nagrać to tylko jeden format. Na przykład, mając kawałek szóstej pod względem liczby i dwóch cyfr w części ułamkowej. Można to zrobić tylko w ten sposób: 123.456,78. Format liczb zmiennoprzecinkowych dając pełny zakres ekspresji. Na przykład, biorąc pod uwagę te same osiem cyfr. Opcje nagrywania może być dowolna, jeśli programista nie czyni dwucyfrowa skąpić cło dodatkowe pola, gdzie będzie nagrywać wykładniki, które są zwykle 10, a od 0 do 16, a rozładowuje się podczas gdy całkowita liczba będzie dziesięć 8 + 2.

Niektóre realizacje zapisu, który pozwala formatować liczby z zmiennoprzecinkowych: 12345678000000000000; +0,0000012345678; 123,45678; 1.2345678 i tak dalej. W tym formacie nie jest jeszcze jednostka pomiaru prędkości! Przeciwnie, wydajność systemu komputerowego, który rejestruje prędkość, z jaką komputer wykonuje operacje w których istnieje reprezentacja liczb zmiennoprzecinkowych. Wynik ten jest mierzony bistabilne (operacji zmiennoprzecinkowych na sekundę, co przekłada się na szereg operacji na sekundę z zmiennoprzecinkowe). Jest to podstawowa jednostka w szybkości systemu komputerowego pomiaru.

struktura

Rekordowa liczba w formacie zmiennoprzecinkowym jest konieczne w następujący sposób, z zachowaniem kolejności obowiązkowych części, bo ta płyta jest wykładniczy, który pokazuje liczby rzeczywiste jako mantysy i porządku. Konieczne jest, aby reprezentować zbyt duże i zbyt małej liczby, są one znacznie łatwiejsze do odczytania. Wymagane części: rejestrowana liczba (N) Mantysa (M), przy czym kolejność oznakowanie (P) i rzędu (n). Dwie ostatnie cechy znaku. Stąd, N = M. n s. Tak napisany liczb zmiennoprzecinkowych. Przykłady będą zróżnicowane.

1. Konieczne jest, aby rejestrować liczbę jednego miliona, tak aby nie zgubić się w zerami. 1000000 – jest to normalny zapis, arytmetyka. Komputer jest w następujący sposób: 1.0. 06 października. Oznacza to, że dziesięć do potęgi szóstej – trzy znaki, które pasują aż sześć zer. Zatem występuje reprezentacja liczb o stałym i zmiennym punkcie, w którym od razu można wykryć różnice w pisowni.

2. I tak ciężko jest numer 1435000000 (jeden czterysta miliardów trzydzieści pięć tysięcy) również mogą być napisane po prostu: 1435. 10 września tylko. Tak samo jest ze znakiem minus można napisać dowolną liczbę. To wszystko, i różnią się od siebie z numerem stałym i zmiennym punkcie.

Ale to bardziej jak być niska? Tak, zbyt łatwo.

3. Na przykład, jako znak jedna milionowa? = 0.000001 1,0. 10 -6. Znacznie ułatwione i numery pisanie i czytanie.

4. Bardziej skomplikowane? Pięćset 46-ty miliardowa: 0,000000546 = 546. 10 -9. Tutaj. Zakres zmiennoprzecinkowych jest bardzo szeroki.

kształt

liczba form mogą być normalne lub znormalizowane. Normalny – zawsze respektować precyzja liczb zmiennoprzecinkowych. Należy zauważyć, że mantysa w tej formie, bez brania pod uwagę znak, to połowa przedziału 0 1, a następnie 0 ⩽ a <1. nie w postaci normalnej liczby traci swoją dokładność. Wadą postaci normalnej jest to, że wiele liczb można zapisać na różne sposoby, że jest niejednoznaczna. Przykład różnych zapisów tego samego numeru: 0 = 0,0001, 000001. 10 lutego = 0,00001. 10 stycznia = 0,0001. 10 0 = 0,001. 10 -1 = 0,01. 10 -2, i tak może być znacznie bardziej. Dlatego komputer używa innego znormalizowanej notacji, gdzie dziesiętny mantysa przyjmuje wartość jednostek (włącznie), a tym samym do dziesięciu (brak w zestawie), w taki sam sposób, liczba binarna mantysa ma wartość pomiędzy jednym (włącznie) do dwóch (a nie włącznie).

Tak, 1 ⩽ a <10 To -. Liczb binarnych z zmiennoprzecinkowych, a ta forma zapisu dowolnej liczby (z wyjątkiem zera) oddaje unikalny sposób. Ale też nie jest to wada – niemożność wyobrazić tego rodzaju zera. Dlatego informatyka przewiduje stosowanie specjalnych numerów 0 migowych (BIT). Część całkowitą (MSB) z mantysie liczby binarnej oprócz zera w znormalizowanej formy jest równa 1 (jednostka utajonego). Zapis ten jest stosowany standard IEEE 754. pozycyjny system liczbowy, przy czym jako zasadę stosuje się więcej niż dwie (trójskładnikowych czwartorzędowy i inne systemy), ta właściwość nie jest kupowany.

Real

Liczby rzeczywiste ze zmiennym i są zazwyczaj tak nie jest jedynym, ale to bardzo wygodny sposób reprezentują liczbę rzeczywistą, jak to było, to kompromis pomiędzy zakresem wartości i dokładności. Jest to analogiczne do notacji wykładniczej, tylko wykonywane na komputerze. Numer zmiennoprzecinkową – zestaw poszczególnych bitów jest podzielona na znaku (znak) rzędu (wykładnik potęgowy) i podstawa (Mantis). Najczęstszym formatem jest liczbą 754 zmiennoprzecinkowej IEEE jako zestaw bitów, które kodują część jej mantysy, z drugiej strony – w zakresie stopnia i jeden bit wskazuje znak liczby: zero – jeśli jest pozytywny, jednostka – jeśli liczba jest ujemna. Cała procedura jest rejestrowana za pomocą liczby (code przesunięciu) i mantysie – w znormalizowanej postaci jego części ułamkowej – w układzie podwójnym.

Każdy znak – jest pojedynczy bit, który wskazuje znak dla wszystkich liczb zmiennoprzecinkowych. Mantysa i porządek – są liczbami całkowitymi, że wraz ze znakiem i uczynić reprezentacji liczb zmiennoprzecinkowych. Procedurę można nazwać wykładniczy lub wykładnik. Nie wszystkie liczby rzeczywiste można przedstawić w komputerze w ich dokładnego znaczenia, inni są prezentowane wartości przybliżone. Znacznie prostszym rozwiązaniem – do przedstawienia liczbę rzeczywistą z ustalonym punkcie, gdzie prawdziwy i cała część będzie być trzymane oddzielnie. Prawdopodobnie dlatego, że część całkowita jest zawsze przydziału bitów X i częściowym – Y bitów. Ale architektura procesorów nie są świadomi takiej metody, ale dlatego preferuje się liczby zmiennoprzecinkowe.

dodatek

Dodawanie liczb zmiennoprzecinkowych jest dość prosta. W związku z IEEE 754 standardowej liczby pojedynczej precyzji ma dużą liczbę bitów, więc lepiej, aby przejść do przykładów, z lepszym pomysłem wziąć najmniejszą liczbę zmiennoprzecinkową. Na przykład, te dwie wartości – X i Y.

zmienna znak wyraziciel mantysa
X 0 1001 110
Y 0 0111 000

Kroki są następujące:

a) Liczby muszą być reprezentowane w postaci znormalizowanego. Jest to bez wątpienia jeden ukryty. X = 1,110. 2 2, Y = 1000. 2 0.

b) Kontynuować proces kompozycji można wyrównać tylko wystawcy, ale wymaga to przepisanie wartości Y. To odpowiada wartości znormalizowanych ilościach, jednak w rzeczywistości – unnormalizes.

Oblicz różnicę między wykładników stopnia 2 – 0 = 2. Teraz przesuń mantysę celu skompensowania tych zmian, to znaczy, dodać 2 do indeksu drugiego terminu, a tym samym ruchomy przecinkami ukryte jednostki w dwóch punktach w lewo. 0,0100 związku. 02 lutego. Będzie to równoznaczne z poprzedniej wartości Y, to nie ma już Y”.

c) Teraz trzeba dodać liczbę mantysy X i Y. dostosowanego

1,110 + 0,01 = 10,0

Wystawca nadal reprezentuje parametr X, który jest równy 2.

g) kwota otrzymana w poprzednim kroku, przesunięte jednostkę normalizacja, to trzeba przesunąć sumę wykładnik i powtórzyć. 10.0 z dwoma bitami na lewo od miejsca po przecinku, liczba jest konieczne w celu znormalizowania, tj przecinek przesunąć się w lewo o jeden punkt, a wykładnik odpowiednio zwiększona o 1. Okazuje się 1,000. 02 marca.

e) Nadszedł czas, aby przekonwertować liczbę zmiennoprzecinkową w systemie jedno-bajtowego.

suma znak wyraziciel mantysa
X + Y 0 1010 000

wniosek

Jak widać, dodać te liczby nie są zbyt twarde, wszystko, co unosi się przecinek. O ile, oczywiście, z wyjątkiem zwiększając liczbę niższą wykładnik między więcej (w powyższym przykładzie, to Y do X), jak również przywrócenie status quo, czyli kwestii odszkodowania – przesunąć przecinek w lewo od mantysy. Gdy dodatek został już stosowane, to jest bardzo możliwe i jeszcze jeden problem – perenormirovanie i obcięcie nieco jeśli ich liczba nie pasuje do numeru do jej reprezentowania.

mnożenie

System binarny oferuje dwie metody, które mnoży liczb zmiennoprzecinkowych. Zadanie to może być wykonane przez mnożenie, który rozpoczyna się w najmniej znaczących bitach i która zaczyna się w wysokich bity rzędu w kombinację. Oba przypadki zawierają szereg operacji układania kolejno częściową produkt. Te operacje są sterowane przez dodanie bitów mnożnika. Tak więc, jeśli jeden z bitów mnożnika jest jednostką sumą cząstkowych produktów mnożnej rośnie wraz z odpowiednim przesunięciem. Jeśli cyfra mnożnika wkradł się do zera, podczas gdy mnożna nie dodaje.

Jeśli rozmnażanie odbywa się tylko dwa numery, iloczyn liczb w jego kwota nie może przekroczyć liczbę cyfr zawartych w czynników, więcej niż dwa razy, a dla dużych ilościach jest bardzo, bardzo dużo. Jeśli pomnożyć przez jakąś liczbę, produkt nie ryzykuje mieszczą się na ekranie. Ponieważ liczba bitów każdej maszynie cyfrowej jest bardzo ograniczone, a to zmusza ograniczyć maksymalnie dwukrotność liczby sumatory cyfr. A jeśli liczba miejsc jest ograniczona, w produkcie nieuchronnie wprowadzają błędy. Jeśli ilość obliczeń jest duży, błąd zachodzenia, w wyniku czego znacznie zwiększa ogólną dokładność. Tutaj, jedynym sposobem – zaokrąglić wyniki mnożenia, a następnie prace błędach były na przemian. Gdy operacja mnożenia, możliwe staje się wykraczać poza siatką cyfr, ale tylko przez młodsze, ponieważ istnieje ograniczenie nałożone na liczby, które są reprezentowane w postaci stałej punkcie.

kilka wyjaśnień

Lepiej zacząć od początku. Najczęstszym sposobem reprezentują liczbę – numery linii w postaci liczby całkowitej, gdzie przecinek jest domniemanych w samym końcu. Ten ciąg może mieć dowolną długość, ale przecinek stoi w odpowiednim miejscu, aby umieścić go, oddzielając całkowitą od ułamkowej części. Format prezentacji systemu stałoprzecinkowym koniecznie stawia pewne warunki dotyczące lokalizacji punktu dziesiętnego. notacja naukowa wykorzystuje standardowy znormalizowany widok reprezentacji liczb. To aqn { displaystyle wodnym ^ {n }} wodnym N. Tutaj { displaystyle a} a, i to się nazywa koronki mantysa. Tylko o nim mówiono, że 0 ⩽ a <q. Ponadto, wszystkie powinny być już oczywiste, n {/} displaystyle n n – wykładnik całkowitą, a q {/} displaystyle Q Q – również liczbę całkowitą, która jest podstawą radix (litery często 10). Mantysa zostawić przecinek po pierwszej cyfrze, która nie jest zero, ale dodatkowo nagranie jest przekazywane do informacji o bieżącej wartości liczby.

liczba zmiennoprzecinkowa jest napisany bardzo podobny do wszystkich jasnych standardowych numerów wpisów, tylko wykładnik i mantysy są rejestrowane oddzielnie. Ostatnio do tego samego i w znormalizowanym formacie – stałego punktu, który jest ozdobiony pierwszej cyfry znaczącej. Wystarczy zmiennoprzecinkowych jest stosowany głównie w komputerze, czyli w reprezentacji elektronicznej, gdzie system nie jest dziesiętnym i binarnym, gdzie nawet mantysa denormalize uporządkowane punkt – teraz jest przed pierwszą cyfrą, a następnie przed, a nie po to, gdzie część całkowita w zasadzie nie może być. Na przykład, nasz własny system dziesiętny oddałby dziewięć systemu binarnego do czasowego użytkowania. I że będzie nagrywać i jego mantysa zmiennoprzecinkowych tak: +1001000 … 0, a to, a indeks 0 … 0100. Ale system dziesiętny nie produkuje takich skomplikowanych obliczeń, które mogą być w formacie binarnym, stosując formę zmiennoprzecinkowych.

długo arytmetyka

W komputerach elektronicznych mają wbudowane pakietów oprogramowania, gdzie przydzielonych dla mantysy i wykładnika ilości pamięci określony oprogramowania ograniczona jedynie wielkością pamięci komputera. To wygląda jak długi arytmetyki, czyli prostych operacji na liczbach, które wykonuje komputer. To wszystko jest tak samo – dodawanie i odejmowanie, mnożenie i dzielenie, funkcje elementarne i budowę korzenia. Ale liczba bardzo różne, ich pojemność jest znacznie większa niż długość słowa maszynowego. Realizacja tych działań nie jest przez sprzęt i oprogramowanie, ale jest on powszechnie stosowany podstawowy sprzęt do pracy z dużo mniejszą liczbą zamówień. Jest coraz arytmetyka, gdzie numery długość ograniczona tylko przez pojemność pamięci – duże liczby całkowite. Długa arytmetyka jest stosowany w wielu dziedzinach.

1. Aby skompilować kod (procesory, układy o małej głębi bitowej – rejestrów 10-bitowych i osiem-bitowej długości słowa, to nie wystarczy, aby poradzić sobie z informacji z analogowo-cyfrowy (przetwornik analogowo-cyfrowy), a zatem nie może obyć się bez długiego arytmetyki.

2. Jest też długa arytmetyka jest używany do szyfrowania, gdzie jest to konieczne w celu zapewnienia dokładności wyniku potęgowania lub mnożenia do 10,309. Integer arytmetyka modulo m służy – dużą liczbę naturalną, a nie zawsze jest proste.

3. Oprogramowanie dla finansistów i matematyków, też nie jest bez długiego arytmetyki, ponieważ jedynym sposobem sprawdzenia wyników obliczeń na papierze – z pomocą komputera, zapewniając wysoką dokładność liczb. zmiennoprzecinkowe mogą obejmować dowolną liczbę długich rozładowania. Ale obliczenia inżynierskie i dziełem naukowców wymaga obliczeń programu interwencji bardzo często, ponieważ jest to bardzo trudne do wykonania danych wejściowych bez popełniania błędów. zwykle są one znacznie bardziej obszerny niż zaokrąglania wyników.

Walczyć z błędami

Gdy liczba operacji, w której zmiennoprzecinkowe, to jest bardzo trudne do oceny dokładności wyników. jeszcze nie wynaleziono spełniających wszystkie matematyczną teorię, która pomoże rozwiązać ten problem. Ale całkowita błąd oceniać łatwo. Możliwość pozbycia nieścisłości na powierzchni – wystarczy użyć tylko liczbę stałym punkcie. Na przykład, program finansowy zbudowany na tej zasadzie. Jednakże, istnieje prostszy: wymagana liczba cyfr po przecinku jest znana z góry.

Inne aplikacje nie są ograniczone, ponieważ nie można pracować zarówno bardzo małych lub bardzo dużych ilościach. Dzięki czemu podczas pracy zawsze bierze pod uwagę, że może być nieścisłości, a ze względu na wyprowadzenie wyników konieczne jest rundzie. Ponadto, automatyczne zaokrąglania często brak działania, a w związku z tym dla zaokrąglenia, jest określone szczegółowo. Bardzo niebezpieczne w tym względzie operacji porównania. Jest nawet oszacować ilość przyszłych błędów jest niezwykle trudne.