Pohyblivá čárka
plovoucí-číslo bodu je digitální reprezentace pro číslo v jisté podmnožině racionálních čísel, a je často používán přiblížit se libovolný reálné číslo na počítači. Zvláště, to reprezentuje celé číslo nebo fixovaný-bod číslo ( significand nebo, informally, mantisa) násobil základem (obvykle 2 v počítačích) k nějaké síle celého čísla ( exponent). Když základ je 2, to je binární analogový vědecké notace (v základě 10). plovoucí-výpočet bodu je aritmetický výpočet hotový s zavodňováním-čísla bodu, a často zahrnuje nějaké přiblížení nebo zaoblování protože výsledek operace nemůže být přesně representable,
V zavodňování-číslo bodu, množství platných číslic (poměrná preciznost) má maximum, poněkud než množství číslic po základě zaměřit (absolutní přesnost) jak v fixovaný-bod.
| Tabulka s obsahem |
| 1 reprezentace 2 použití v práci na počítači 3 problémy s zavodňováním-bod 4 IEEE standard 5 příkladů 6 odkazů |
Zavodňování-číslo bodu moci být reprezentován dvěma čísly m a e, takový to e. V nějakém takovém systému my si vybereme základ b (volal základ numeration, také základ) a preciznost p (kolik číslic k obchodu). m (který je volán significand nebo, informally, mantisa) je p číslové množství formy ± d.ddd... ddd (každá číslice být celé číslo mezi 0 a ba bez; 1 zahrnující). Jestliže vedoucí číslice m non-nula pak číslo je řekl, aby byl normalizovaný. Některé popisy používají oddělený znaménkový bit (s, který reprezentuje a bez; 1 nebo + 1) a vyžadovat m být pozitivní. e je nazýván exponentem.
Toto schéma dovolí velký rozsah velikostí být reprezentován uvnitř dané velikosti pole, který není možný v fixovaný-bod notace.
Jako příklad, zavodňování-číslo bodu se čtyřmi desítkovýma číslicemi (b = 10, p = 4) a exponentový rozsah ± 4 mohl být používán reprezentovat 43210, 4.321, nebo 0.0004321, ale by neměl dost preciznosti reprezentovat 432.123 a 43212.3 (který by musel být obejit k 432.1 a 43210). Samozřejmě, v praxi, množství číslic je obvykle větší než čtyři.
Skrytý kousek
Když používá binární (b = 2), jeden kousek může být uložen jestliže všechna čísla jsou vyžadována být normalizován. Vedoucí číslice significand normalizovaného binárního zavodňování-číslo bodu je vždy non-nula, zvláště to je vždy 1. Toto znamená, že to nepotřebuje být uložen výslovně, pro normalizované číslo to může být dohodnuté být 1. IEEE 754 standard využívá tento fakt. Vyžadovat, aby všechna čísla byl normalizován znamená to 0 moci ne být reprezentován; typicky nějaká zvláštní reprezentace nuly je vybrána. V IEEE standardu tento kód speciality také zahrnuje denormal čísla, který počítat s postupným podtečením.
Použití v práci na počítači
Chvíle v příkladech nahoře čísla jsou reprezentována v desítkovém systému (to je základ numeration, b = 10, počítače obvykle dělají tak v binárním systému, který znamená to b = 2). V počítačích, plovoucí-čísla bodu jsou klížena množstvím kousků zvyklý na obchod je. Tato velikost je obvykle 32 kousků nebo 64 kousků, často nazvaný “jeden-preciznost” a “dvojitý-preciznost”. Nemnoho strojů nabídne větší velikosti; Intel FPUs takový jak Intel 8087 (a jeho potomci se spojili do x86 architektury) nabídka 80 zavodňování kousku zaměří čísla pro střední výsledky a několik systémů nabídne 128 zavodňování kousku-bod, obecně splnil v softwaru.
Plovoucí-čísla bodu obvykle se chovají velmi podobně k reálným číslům oni jsou používáni přiblížit se. Nicméně, toto může snadno vést programátory do přes-sebejistě ignorovat potřebu numerické analýzy. Tam je mnoho případů kde plovoucí-čísla bodu nemodelují reálná čísla dobře, dokonce v jednoduchých případech takový jak reprezentovat desetinný zlomek 0.1, který nemůže být přesně reprezentován v nějakém binárním zavodňování-formát bodu. Z tohoto důvodu, finanční software inklinuje nepoužívat binární zavodňování-zaměřit reprezentaci čísla. Viz:
Chyby v zavodňování-výpočet bodu může obsahovat:
- Zaoblování
- Non-representable čísla: například, doslovný 0.1 moci ne být reprezentován přesně binárním zavodňováním-číslo bodu
- Zaoblování aritmetických operací: například 2/3 výnos síly 0.6666667
- Absorbce: 1 × 1015 + 1 = 1×1015
- Zrušení: odčítání mezi téměř rovnocenný operands
- Přetečení / podtečení
IEEE standard
IEEE normalizoval reprezentaci počítače pro binární zavodňování-čísla bodu v IEEE 754. Tento standard je následován téměř všechny moderní stroje. Výrazné výjimky zahrnují IBM sálové počítače, který mají oba hexadecimální a IEEE 754 datových typů, a Cray vektorové stroje, kde T90 série měly IEEE verzi, ale SV1 ještě používá Cray zavodňování-formát bodu.
IEEE 754 standard je nyní (2004) pod revizí. Vidět: http://grouper.ieee.org/groups/754/ Příklady
- Hodnota Pi, a pi; = 3.1415926...10 desetina, který je ekvivalent k binární 11.001001000011111...2. Když reprezentovaný v počítači to přidělí 17 kousků pro significand, to bude stát se 0.11001001000011111 × 22. Proto zavodňování-reprezentace bodu by začínala kousky 01100100100001111 a končit kousky 01 (který reprezentovat exponent 2 ve dvojkové soustavě). Poznámka: první nula ukáže kladné číslo, konec 102 = 210.)
- Hodnota a bez; 0.37510 = 0.0112 nebo 0.11 × 2a bez; 1. V dva je doplňková notace a minus; 1 je reprezentován jak 11111111 (předpokládat 8 kousků být použit v exponentu). V zavodňování-notace bodu, číslo se začátkem s 1 pro znaménkový bit, následoval 110000... a pak následoval 11111111 na konci, nebo 1110... 011111111 (kde... jsou nuly).
- Kahan, William (2001). Jak Java je plovoucí-bod zraní každého všude. Získaný Sep. 5, 2003 od http://www.cs.berkeley.edu/ ~ wkahan/JAVAhurt. pdf
- vydaný dotisk papíru Jaký každý počítačový vědec by měl vědět o zavodňování-aritmetika bodu, David Goldberg, publikoval v březnu, 1991 výtisku počítačových průzkumů