Číslo s plovoucí desetinnou čárkou

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 28. ledna 2022; kontroly vyžadují 10 úprav .

Číslo s plovoucí desetinnou čárkou (neboli číslo s pohyblivou řádovou čárkou ) je exponenciální forma reprezentace reálných (reálných) čísel , ve které je číslo uloženo jako mantisa a exponent ( exponent ). V tomto případě má číslo s pohyblivou řádovou čárkou pevnou relativní přesnost a proměnnou absolutní. Nejčastěji používaná reprezentace je uvedena ve standardu IEEE 754 . Implementace matematických operací s čísly s pohyblivou řádovou čárkou ve výpočetních systémech může být hardwarová i softwarová.

"Plovoucí řádová čárka" a "plovoucí řádová čárka"

Vzhledem k tomu, že v některých, převážně anglicky mluvících a anglicky mluvících zemích se při psaní čísel odděluje celočíselná část od zlomkové čárky, objevuje se v terminologii těchto zemí termín „floating point“ .  Vzhledem k tomu, že v Rusku je celočíselná část čísla tradičně oddělena od zlomkové části čárkou, termín „plovoucí desetinná čárka“ se historicky používá k označení stejného konceptu, avšak v současnosti lze obě možnosti nalézt v ruštině. literaturu a technickou dokumentaci.

Původ jména

Název "plovoucí desetinná čárka" pochází ze skutečnosti, že čárku v poziční reprezentaci čísla (desetinná čárka, nebo pro počítače binární čárka - dále jen čárka) lze umístit kdekoli vzhledem k číslicím v řetězci. Tato pozice čárky je specifikována samostatně v interní reprezentaci. Na reprezentaci čísla ve formě s pohyblivou řádovou čárkou lze tedy pohlížet jako na počítačovou implementaci exponenciálního zápisu čísel.

Výhodou použití reprezentace čísel s plovoucí desetinnou čárkou oproti reprezentaci s pevnou desetinnou čárkou (a celým číslem ) je, že lze použít mnohem větší rozsah hodnot při zachování stejné relativní přesnosti . Například ve formě pevné čárky může být číslo, které má 6 celých číslic a 2 desetinná místa, reprezentováno jako 123 456,78 . Ve formátu s plovoucí desetinnou čárkou ve stejných 8 číslicích můžete zapsat čísla 1,2345678 ; 1,234,567,8 ; 0,000012345678 ; 12 345 678 000 000 000 a tak dále, ale k tomu je nutné mít další dvoumístné pole pro záznam exponentů základu 10 od 0 do 16, přičemž celkový počet číslic bude 8 + 2 = 10 .

Rychlost, s jakou počítač provádí operace s čísly reprezentovanými v plovoucí řádové čárce, se měří v FLOPS (z anglického  floating-point operations per second  - „[počet] operací s plovoucí desetinnou čárkou za sekundu“) a je jednou z hlavních jednotky pro měření rychlosti výpočetních systémů .

Struktura čísel

Číslo s plovoucí desetinnou čárkou se skládá z následujících částí:

Normální a normalizované formy

Normální forma čísla s plovoucí desetinnou čárkou je taková forma, ve které je mantisa (bez zohlednění znaménka) na polovičním intervalu , tedy .

Tato forma zápisu má nevýhodu: některá čísla jsou psána nejednoznačně (například 0,0001 lze zapsat jako 0,000001⋅10 2 , 0,00001⋅10 1 , 0,0001⋅ 10 0 , 0,001⋅20 a −10 −10 −1 na), proto je běžná i jiná forma zápisu (zejména v informatice) - normalizovaná , ve které mantisa desetinného čísla nabývá hodnot od 1 (včetně) do 10 (výhradně), tedy (podobně jako mantisa binárního čísla nabývá hodnot od 1 do 2). V tomto tvaru se jakékoli číslo (kromě ) zapisuje jedinečným způsobem. Nevýhodou je, že v této podobě nelze reprezentovat 0, takže reprezentace čísel v informatice poskytuje pro číslo 0 speciální znaménko ( bit ).

Nejvyšší bit (celočíselná část čísla) mantisy binárního čísla (kromě 0) v normalizovaném tvaru je roven 1 (tzv. implicitní jednotka ), proto při zápisu mantisy čísla v počítač, lze vysoký bit vynechat, který se používá ve standardu IEEE 754 . V pozičních číselných soustavách se základem větším než 2 (v ternárních , kvartérních atd.) tato vlastnost neexistuje.

Metody záznamu

S omezenými možnostmi návrhu (například zobrazením čísla na sedmisegmentovém indikátoru ) a také v případě potřeby poskytují rychlé a pohodlné zadávání čísel místo psaní tvaru m b e ( m je  mantisa; b  je základ , nejčastěji 10; e  je exponent), zapište pouze mantisu a exponent a oddělte je písmenem "E" (z anglického exponent ). V tomto případě se implicitně předpokládá, že základ je roven 10. Například číslo 1,528535047⋅10 −25 je v tomto případě zapsáno jako 1,528535047E-25.  

Přehled

Existuje několik způsobů, jak mohou řetězce číslic reprezentovat čísla:

Zápis čísla ve formě s plovoucí desetinnou čárkou umožňuje provádět výpočty v širokém rozsahu hodnot, přičemž kombinuje pevný počet číslic a přesnost. Například v desítkové reprezentaci čísel s plovoucí desetinnou čárkou (3 číslice) operace násobení, kterou bychom napsali jako

0,12 × 0,12 = 0,0144

v normální formě je reprezentován jako

(1,20⋅10 −1 ) × (1,20⋅10 −1 ) = (1,44⋅10 −2 ).

Ve formátu s pevným bodem bychom dostali nucené zaokrouhlení

0,120 × 0,120 = 0,014.

Ztratili jsme číslici úplně vpravo, protože tento formát neumožňuje, aby čárka „plula“ podél položky čísla.

Rozsah čísel reprezentovatelných ve formátu s plovoucí desetinnou čárkou

Rozsah čísel, která lze zapsat tímto způsobem, závisí na počtu bitů přidělených k reprezentaci mantisy a exponentu. Na typickém 32bitovém počítači používajícím dvojitou přesnost (64 bitů) je mantisa 1 bit znaménko + 52 bitů, exponent je 1 bit znaménko + 10 bitů. Získáme tak rozsah přesnosti přibližně od 4,94⋅10 −324 do 1,79⋅10 308 (od 2 −52  × 2 −1022 do ~1 × 2 1024 ). (nebo od 3,7⋅10 -1126 do 9,99⋅10 1091 ). Ve standardu IEEE 754 je několik hodnot tohoto typu vyhrazeno, aby bylo možné reprezentovat speciální hodnoty. Patří mezi ně hodnoty NaN (Not a Number) a +/-INF (Infinity ) vyplývající z dělení nulovými operacemi nebo při překročení číselného rozsahu. Jsou zde také zahrnuta denormalizovaná čísla , která mají mantisu menší než jedna. Specializovaná zařízení (jako GPU ) často postrádají podporu pro speciální čísla. Existují softwarové balíčky, ve kterých je množství paměti přidělené pro mantisu a exponent nastaveno programově a je omezeno pouze množstvím dostupné paměti počítače (viz Arbitrary precision aritmetika ).

Přesnost Singl Dvojnásobek Rozšířené
Velikost (bajty) čtyři osm deset
Počet desetinných míst ~7.2 ~15.9 ~19.2
Nejmenší hodnota (>0), denorm 1,4⋅10 −45 4,9⋅10 −324 3,7⋅10 −1126
Nejnižší hodnota (>0), normální 1,2⋅10 −38 2,3⋅10 −308 1⋅10 −1091
Nejvyšší hodnota 3,4×10 +38 1,7×10 +308 9,9×10 +1091
pole SEF SEF SEIF
Velikosti okrajů 1-8-23 1-11-52 1-15-1-63

Stroj epsilon

Na rozdíl od čísel s pevnou řádovou čárkou není mřížka čísel, kterou může aritmetika s plovoucí řádovou čárkou zobrazit, jednotná: je hustší pro čísla s malými exponenty a řidší pro čísla s velkými exponenty. Ale relativní chyba zápisu čísel je stejná pro malá čísla i pro velká. Stroj epsilon je nejmenší kladné číslo ε takové, že (znaménko značí sčítání stroje). Zhruba řečeno, čísla a a b korelují tak , že stroj nerozlišuje.

Pro jednoduchou přesnost , tj. přibližně 7 platných číslic . Pro dvojnásobnou přesnost: , 15 platných číslic [1] .

Viz také

Poznámky

  1. E. Cheney, David Kincaid. Numerická matematika a výpočetní technika. — Cengage Learning, 2012. — 43– s. — ISBN 1-133-71235-5 .

Literatura

Odkazy