Plovoucí číslo bodu: co to je? Jednoduše vysvětleno příklady
V tomto praktickém tipu vám ukážeme, co je číslo s pohyblivou řádovou čárkou a jak se liší od čísla s pevnou čárkou.
Plovoucí číslo bodu: co to je?
V informatice se číslo s pohyblivou řádovou čárkou často používá pro měřicí zařízení, která mají pracovat s určitou přesností.
- Číslo s pohyblivou řádovou čárkou (nebo „číslo s pohyblivou řádovou čárkou“) je reprezentace čísla pomocí exponenciálního zápisu. Ve výjimečných případech to funguje pouze přibližně. Číslo 1230000 můžete také reprezentovat číslem 1, 23 ⋅ 10⁶.
- 1.23 se nazývá "Mantissa". 10 je „základna“ a 6 je „exponent“. Mimochodem, mantisu lze přidat také znaménko. Můžete však také použít celou věc na duální systém. Můžete také reprezentovat číslo 10101100 číslem 1.0101100 ⋅ 2⁷. Počítač ukládá pouze znaménko, mantisu a exponent.
- Počítače obvykle přesouvají čárku sem a tam, dokud před čárkou není pouze 1. Pak musí PC uložit pouze desetinná místa mantisy a exponentu.
- Aby exponent mohl být uložen jako kladné číslo, přidá se pevné číslo, tzv. Zkreslení. Nejmenší možný exponent místa před desetinnou čárkou (- zkreslení) se uloží jako 0.
- Na rozdíl od čísla s pevným bodem není čárka v pevném bodě čísla s plovoucí desetinnou čárkou.
Polovina, plovoucí a dvojitá - společné kódování čísel s pohyblivou řádovou čárkou
Určitě jste narazili na tyto tři termíny, zejména při programování s Arduino. Jedná se o standardizované reprezentace.
- Datový typ „polovina“ je 16bitové číslo. Za znaménko je odpovědný bit zcela vlevo. Exponent má 5 bitů a mantisu 10. Použitá předpětí je 15. Protože první bit mantisy je (téměř) vždy 1, není to uloženo.
- Datový typ „float“ (nebo „single“) je 32bitové číslo. I zde se trochu používá pro označení. Exponent však má 8 bitů (zkreslení = 127) a mantisu 23.
- Datový typ „double“ také používá trochu pro znaménko. Zde však exponent má 11 bitů (zkreslení = 1023) a mantisy dokonce 52 bitů. Celkově se jedná o 64 bitů, tj. 8 bytů.
- Kromě těchto tří běžných datových typů existuje mnoho dalších. Většinou se však nepoužívají, protože přesnost poloviny, plováku a dvojnásobku je již dostatečně dobrá.
Převést desetinná čísla na čísla s pohyblivou řádovou čárkou - jak to funguje
Nakonec bychom vám rádi ukázali, jak lze převést normální desetinné číslo na číslo s pohyblivou řádovou čárkou.
- V tomto příkladu používáme desetinné číslo 18.4. Číslo před desetinnou čárkou je nejprve přeneseno do duálního systému. Ve výsledku byste měli získat (10 010) ₂.
- Pak musíte převést 0, 4. Nejprve vynásobte 0, 4 x 2. Výsledkem je 0, 8. Poznamenejte si číslo před čárkou. V tomto případě je to 0. Pak vynásobte 0, 8 x 2. Tentokrát dostanete 1, 6 jako výsledek. Poznamenejte si 1 a pokračujte ve výpočtu s 0, 6. Po chvíli si všimnete, že se vzor opakuje sám (v tomto příkladu). Nakonec si zapište všechna čísla shora dolů: 011001100110 ...
- Pak přidejte čísla dohromady: Také přidejte (⋅ 2⁰), abyste získali 10010 01100110 ... ⋅ 2⁰. Potom přesuňte čárku, dokud nebude před desetinnou čárkou pouze 1, a také odpovídajícím způsobem změňte sílu. Ve výsledku byste měli získat 1, 001001100110 ... ⋅ 2⁴, protože jste přesunuli desetinnou čárku o 4 místa doleva. Tento krok se také nazývá „normalizace“.
- V tomto příkladu používáme datový typ „float“. Přidejte tedy exponentu příslušnou hodnotu zkreslení. Musíte také převést výsledek výpočtu 4 + 127 = 131 na binární číslo. Číslo 131 je číslo 10000011 v duálním systému.
- Nyní si můžete zapsat dokončené číslo s pohyblivou řádovou čárkou. Nejprve napište bit pro znaménko. Protože se jedná o kladné číslo, první bit je 0. Potom musíte napsat 131. Celá věc se v tomto případě perfektně hodí, protože toto číslo vyžaduje 8 bitů a 8 bitů je k dispozici pro float. Nakonec musíte zapsat prvních 23 bitů mantisy, protože mantissa má k dispozici 23 bitů pro float.
- Vaše dokončené číslo s pohyblivou řádovou čárkou by proto mělo být číslo 01000001100100110011001100110011. Trochu jasnější je číslo 0 | 10000011 | 00100110011001100110011.
Převést číslo s pohyblivou řádovou čárkou na desetinné číslo - Zde je návod
Nakonec bychom vám rádi ukázali, jak můžete převést číslo s pohyblivou řádovou čárkou na desetinné číslo. K tomu bereme číslo 1000001100100110011001100110011.
- Nejprve vyplňte číslo (přední) nuly, dokud nezískáte 16, 32 nebo 64 bitové číslo. V tomto případě je to 01000001100100110011001100110011.
- První číslice představuje označení. Takže naše číslo je kladné.
- Pak napište dalších (v tomto případě) 8 číslic a odečtěte zkreslení. (10000011) ₂ = 131 → 131 - 127 = 4 → Na zadní straně je tedy „⋅ 2⁴“.
- Nyní napište „1“ a poté všechna zbývající čísla a „⋅ 2⁴“: 1.00100110011001100110011 ⋅ 2⋅
- Poté přesuňte čárka 4 místa doprava, abyste vynechali „⋅ 2⁴“: 10010.0110011001100110011
- Dále převeďte 10010 na celé číslo jako obvykle. Dostanete 18.
- Nyní musíte převést desetinná místa. První číslice za čárkou má hodnotu 1: 2¹, druhá číslice 1: 2² atd. Přidejte hodnoty a číslo před čárkou vám dá číslo 18.3999996185302734375.
V dalším praktickém tipu vám ukážeme, jak převést písmena ASCII na binární čísla.