Čí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á.
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.
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ů .
Číslo s plovoucí desetinnou čárkou se skládá z následujících částí:
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.
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.
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,0144v 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, 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 |
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] .
Typy dat | |
---|---|
Neinterpretovatelné | |
Numerický | |
Text | |
Odkaz | |
Kompozitní | |
abstraktní | |
jiný | |
související témata |