From Wikipedia, the free encyclopedia
Ve výpočetní technice se pohyblivou řádovou čárkou nebo plovoucí řádovou čárkou rozumí způsob reprezentace čísel, která by byla moc malá nebo velká pro vyjádření v pevné řádové čárce. Čísla jsou obecně uložena jako určité množství platných číslic vynásobený exponentem. Základem exponentu bývá většinou 2, 10 nebo 16 (což odpovídá dvojkové, desítkové a šestnáctkové soustavě). Čísla, která mohou být v pohyblivé řádové čárce vyjádřena přesně, jsou ve tvaru:
Název pohyblivá respektive plovoucí vznikl z toho, že se desetinná čárka (nebo v počítačích častěji „binární čárka“) pohybuje – je umístěna kdekoliv relativně k platným číslicím. Tato pozice je interně uložena separátně, proto může reprezentace plovoucí desetinnou čárkou být brána jako počítačová realizace vědecké notace. V průběhu času se používalo několik různých systémů počítačové reprezentace plovoucí desetinné čárky, ale v posledních deseti letech se nejčastěji používá reprezentace definovaná standardem IEEE 754.
Výhodou reprezentace s plovoucí místo s pevnou desetinnou čárkou (popř. integery) je mnohem širší oblast hodnot: reprezentace s pevnou des. čárkou, která má sedm desítkových číslic a dvě desetinná místa, může vyjádřit čísla 12345,67, 123,45, 1,23 atd., zatímco reprezentace s plovoucí desetinnou čárkou (jako IEEE 754 formát Decimal32) se sedmi desítkovými čísly může vyjadřovat kromě toho 1,234567, 123456,7, 0,00001234567, 12345670000000 atd. Formát plovoucí desetinné čárky vyžaduje o trochu více paměti (k zakódování pozice desetinné čárky), proto při uložení ve stejném prostoru mají čísla s plovoucí desetinnou čárkou menší rozsah, ale větší přesnost než čísla s čárkou pevnou.
Rychlost operací prováděných s čísly s plovoucí desetinnou čárkou je důležitým měřítkem rychlosti počítačů v mnoha oblastech. Měří se v jednotce FLOPS (operace s plov. des. čárkou za sekundu).
Reprezentace čísel specifikuje způsob uložení čísla tak, aby mohlo být zakódováno jako řetězec číslic. Aritmetika je definována jako sada operací nad touto reprezentací, která simuluje klasické matematické operace.
Je několik mechanismů, kterými může řetězec číslic reprezentovat čísla. V běžné matematické notaci může být řetězec libovolně dlouhý a umístění desetinné čárky je explicitně označeno vložením čárky (resp. tečky). Je-li vynechána, předpokládá se, že leží přímo napravo od poslední (nejméně významné) číslice. V systémech s pevnou desetinnou čárkou je pozice desetinné čárky pevně dána konvencí, například říká-li konvence, že desetinná čárka leží uprostřed osmiciferného zápisu, zápis „00012345“ by vyjadřoval hodnotu 1,2345.
Ve vědecké notaci se čísla vyjadřují dvěma složkami: mantisou a exponentem. Hodnota zápisu X×10Y je pak X krát deset na Y. Mantisa se obvykle volí tak, aby ležela mezi 1 a 10. Například perioda otáčení Io, měsíce Jupitera, je 152 853,5047 sekund. Tato doba je ve vědecké notaci vyjádřena jako 1,528535047×105 sekund.
Reprezentace v plovoucí desetinné čárce je podobná konceptu vědecké notace. Číslo s plovoucí desetinnou čárkou je rozděleno na:
Mantisa je vynásobena základem soustavy umocněným na exponent, což odpovídá posunutí desetinné čárky z její původní pozice v mantise o počet míst odpovídající hodnotě exponentu: doprava, je-li exponent kladný, doleva, je-li záporný.
V soustavě o základu 10 (obvyklé desítkové soustavě) uvedeme tento příklad: Číslo 152853,5047, které má deset desítkových cifer přesnosti, je reprezentováno s mantisou 1528535047 a exponentem 5 (s předpokládanou původní polohou desetinné čárky hned za nejvýznamnější číslicí mantisy, zde 1). K získání původní hodnoty se umístí desetinná čárka za nejvýznamnější číslici mantisy a výsledek se vynásobí 105, z čehož se získá 1,528535047×105, neboli 152853,5047. Není potřeba ukládat základ soustavy (10), protože bude shodný pro všechna použitá čísla. Někdy se také používá zápis 1.528535047 E 5, kde E znamená „krát deset na“.
Zapsáno v symbolech je výsledná hodnota
kde m je mantisa (včetně jejího předpokládaného umístění des. čárky), z je základ soustavy a e exponent.
Toto odpovídá
kde m je hodnota mantisy bez předpokládané desetinné čárky a p je přesnost – množství cifer v mantise.
Historicky se používaly různé základy čísel s plovoucí desetinnou čárkou, přičemž nejčastější je 2 (dvojková soustava), dále 10 (desítková soustava) a různé další, méně časté varianty (například 16 – šestnáctková soustava). Čísla s plovoucí desetinnou čárkou jsou racionální, protože mohou být vyjádřeny jako podíl dvou celých čísel, avšak základ soustavy určuje reprezentovatelné zlomky – například 1/5 nemůže být přesně vyjádřena jako číslo s plovoucí des. čárkou se základem 2, ale může být tak vyjádřeno se základem 10.
Způsob, jakým jsou mantisa, exponent a znaménkový bit uloženy v počítači, je závislý na implementaci. Obvyklé IEEE formáty jsou detailně popsány dále a jinde, ale například binární číslo s jednoduchou přesností (32 bitů) je p rovno 24, proto je mantisa řetězec 24 bitů (jedniček nebo nul). Například prvních 33 bitů čísla pí je 11001001 00001111 11011010 10100010 0. Zaokrouhlení na 24 bitů znamená přiřazení hodnoty 25. bitu do 24. bitu, tedy 11001001 00001111 11011011. Při uložení v kódování IEEE 754 se z tohoto stane mantisa m s e = 1 (při e = 0 se předpokládá, že m má desetinnou čárku hned za první číslicí – zde 1). Protože první bit binární mantisy je vždy jedna, není nutné jej ukládat[1] a může se uvolněné místo použít pro extra bit přesnosti. K výpočtu pí z této reprezentace lze použít:
, kde n je n-tý zleva normalizovaný bit mantisy. Normalizace, která je obrácena, když se vrací zpět odebraná 1, může být brána jako forma komprese: umožňuje kompresi binární mantisy do o 1 bit menšího prostoru za cenu větší výpočetní náročnosti.
V počítačových systémech se využívá toho, že vybraná podmnožina reálných čísel může být vyjádřena jako
V různých počítačových systémech se používají různé báze, a různé reprezentace mantisy a exponentu:[2]
Počítač/norma/systém | Šířka (b) | Báze | Exponent (b) | Mantisa (b) | Nejmenší číslo | Největší číslo | Počet platných míst |
---|---|---|---|---|---|---|---|
IEEE 754 half | 16 | 2 | 5 | 10+1[p 1] | |||
IEEE 754 single | 32 | 2 | 8 | 23+1[p 1] | 1,17×10−38 | 3,40×1038 | 7 |
IEEE 754 double | 64 | 2 | 11 | 52+1[p 1] | 2,22×10−308 | 1,79×10308 | 16 |
IEEE 754 double extended | 80 | 2 | 15 | 64 | |||
IEEE 754 quadruple | 128 | 2 | 15 | 112+1[p 1] | |||
IEEE 754 octuple | 256 | 2 | 19 | 236+1[p 1] | |||
IBM řady 7×x | 36 | 2 | 8 | 27 | |||
IBM 360 single | 32 | 16 | 7 | 24 | |||
IBM 360 double | 64 | 16 | 7 | 56 | |||
HP 3000 single | 32 | 2 | 9 | 22 | |||
HP 3000 double | 64 | 2 | 9 | 54 | |||
CDC 6000, 6600 | 60 | 2 | 11 | 48+1[p 1] | |||
Cray-1 | 64 | 2 | 15 | 48 | 3,67×10−2466 | 2,73×102465 | 15 |
Strela | 43 | 2 | 7 | 35 | 1,8×10−19 | 1,8×1019 | |
Apple II | 40 | 2 | 8 | 31+1[p 1] | |||
ZX Spectrum | 40 | 2 | 8 | 31+1[p 1] | 4×10−39 | 1038 | |
Atari (FP rutiny) | 48 | 100[p 2] | 7 | 40 | |||
Turbo Pascal real | 48 | 2 | 8 | 39 |
V počítačích IBM 704 je číslo uloženo jako[2]
bit | 35 | 34 - 27 | 26 - 0 |
---|---|---|---|
význam | znaménko | exponent | mantisa |
Počítače řady BM 1400 ukládají čísla v BCD kódu, kdy jsou jednotlivé číslice ukládány v bytu ve tvaru
C B A 8 4 2 1 M
kdy bity 8 - 1 nesou vlastní hodnotu číslice, bity A a B sloužící pro rozšíření množství dat jsou nulové, C je paritní bit (používá se lichá parita) a M označuje zda se jedná o poslední číslici čísla.[2] Ruský počítač Strela umožňue ukládat čísla jak v binárním formátu, tak v BCD formátu.
binární formát | bit | 0 | 1 - 35 | 36 | 37 - 42 |
význam | znaménko mantisy | absolutní hodnota mantisy | znaménko exponentu | exponent | |
BCD formát | bit | 0 | 1 - 36 | 37 | 38 - 42 |
význam | znaménko mantisy | absolutní hodnota mantisy | znaménko exponentu | exponent |
Při použití binárního formátu je přesnost čísla 10 - 11 desítkových číslic, BCD formátu pouze 9 desítkových číslic.[2]
V počítačích Cray-1 je číslo uloženo jako[2]
počet bitů | 1 | 1 | 14 | 48 |
---|---|---|---|---|
význam | znaménko mantisy | znaménko exponentu | exponent | mantisa |
Osmibitové počítače Atari ukládají čísla do šesti bajtů:[2]
byte | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
význam | znaménko + exponent | 2 BCD číslice | 2 BCD číslice | 2 BCD číslice | 2 BCD číslice | 2 BCD číslice |
Datový typ real Turbo Pascalu pro čísla používá šest bytů:[2]
byte | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
význam | exponent | mantisa | mantisa | mantisa | mantisa | znaménko + mantisa |
Reprezentace pomocí plovoucí desetinné čárky, obzvláště ve standardním formátu IEEE, je zdaleka nejobvyklejší způsob ukládání přibližných hodnot reálných čísel v počítačích, protože většina počítačových procesorů s ním dokáže efektivně pracovat. Existují ale tyto alternativy:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.