Ako previesť číslo z desatinného na reprezentáciu s pohyblivou rádovou čiarkou IEEE 754?
Na rozdiel od ľudí počítače nepoužívajú systém čísiel 10. Používajú číselný systém základne 2, ktorý umožňuje dve možné reprezentácie, 0 a 1. Čísla sú teda v IEEE 754 zapísané veľmi odlišne ako v tradičnom desatinnom systéme, na ktorý sme zvyknutí. V tejto príručke sa naučíte písať číslo v reprezentácii jednoduchej alebo dvojitej presnosti IEEE 754.
Pre túto metódu budete potrebovať vedieť, ako previesť čísla do binárnej podoby. Ak neviete, ako to urobiť, môžete sa naučiť postup v časti Ako previesť z desatinného na binárne.
- 1Vyberte si jednoduchú alebo dvojitú presnosť. Pri zápise čísla s jednoduchou alebo dvojitou presnosťou budú kroky k úspešnej konverzii pre obidva rovnaké, jediná zmena nastane pri prevode exponentu a mantisy.
- Najprv musíme pochopiť, čo znamená jediná presnosť. V reprezentácii s pohyblivou rádovou čiarkou sa každé číslo (0 alebo 1) považuje za „bit“. Jedna presnosť má teda 32 bitov, ktoré sú rozdelené do 3 rôznych predmetov. Tieto predmety pozostávajú zo znamienka (1 bit), exponenta (8 bitov) a mantisy alebo zlomku (23 bitov).
- Dvojitá presnosť, na druhej strane, má rovnaké nastavenie a rovnaké 3 časti ako jednoduchá presnosť; jediným rozdielom je, že to bude väčšie a presnejšie číslo. V tomto prípade bude mať znak 1 bit, exponent bude mať 11 bitov a mantisa bude mať 52 bitov.
- V tomto prípade sa číslo 85125 bude prevádzať na jednoduchú presnosť IEEE 754.
- 2Oddeľte celú a desatinnú časť čísla. Vezmite číslo, ktoré by ste chceli previesť, a rozdeľte číslo tak, aby ste mali celú číselnú časť a desatinné číslo. V tomto prípade sa použije číslo 85,125. Môžete to rozdeliť na celé číslo 85 a desatinné miesto 0,125.
- 3Skonvertujte celé číslo na binárne. To by bolo 85 z 85 125, čo bude 1010101 pri prepočte na binárne.
- 4Skonvertujte desatinnú časť na binárnu. To by bolo 0,125 z 85,125, čo bude 0,001 pri prepočte na binárne.
- 5Skombinujte dve časti čísla, ktoré boli prevedené na binárne. Napríklad číslo 85 v binárnom čísle je 1010101 a desatinná časť 0,125 v binárnom čísle je 0,001. Keď ich spojíte pomocou desatinnej čiarky, dostanete konečnú odpoveď 1010101,001.
- 6Skonvertujte binárne číslo na vedecký zápis základne 2. Číslo môžete previesť na vedecký zápis základne 2 tak, že desatinnú čiarku posuniete doľava, kým nebude napravo od prvého bitu. Tieto čísla sú normalizované, čo znamená, že počiatočný bit bude vždy 1. Pokiaľ ide o exponent, koľkokrát ste desatinnú časť presunuli, bude váš exponent vo vedeckej notácii základne 2.
- Pamätajte si, že posun desatinnej čiarky doľava bude mať kladný exponent, zatiaľ čo desatinnú čiarku doprava bude mať záporný exponent.
- V našom prípade budete musieť desatinnú čiarku posunúť 6 -krát, aby ste ju dostali napravo od prvého bitu. Výsledný zápis bude 01,010101001 ∗ 26 {\ displaystyle 01,010101001*2^{6}} , toto číslo bude použité v ďalších krokoch.
- 7Určte znamienko čísla a zobrazte ho v binárnom formáte. Teraz určíte, či je vaše pôvodné číslo kladné alebo záporné. Ak je číslo kladné, zaznamenáte tento bit ako 0, a ak je záporný, zaznamenáte tento bit ako 1. Pretože vaše pôvodné číslo, 85 125, je kladné, zaznamenáte tento bit ako 0. Toto bude prvý bit z 32 celkových bitov vo vašej reprezentácii jednoduchej presnosti IEEE 754.
- 8Získajte exponent na základe presnosti. Existujú nastavené odchýlky pre jednoduchú aj dvojitú presnosť. Predpona exponentu pre jednoduchú presnosť je 127, čo znamená, že musíme k nej pridať predtým nájdený exponent bázy 2. Takže exponent, ktorý použijete, je 127+6, čo je 133.
- Dvojitá presnosť, ako je zrejmé z názvu, je presnejšia a môže obsahovať väčšie čísla. Preto je jeho exponentová zaujatosť 1023. Platia tu rovnaké kroky pre jednoduchú presnosť, takže exponent, ktorý môžete použiť na nájdenie dvojitej presnosti, je 1029.
- 9Zmeňte exponent na binárne. Potom, čo určíte svojho konečného exponenta, ho budete musieť previesť na binárne, aby ho bolo možné použiť pri konverzii IEEE 754. Napríklad môžete previesť 133, ktoré ste našli v poslednom kroku, na 10000101.
- 10Určite mantisu. Aspekt mantisy alebo tretia časť konverzie IEEE 754 je zvyšok čísla za desatinnou čiarkou vedeckého zápisu na základe 2. Jednoducho zahodíte 1 na predné miesto a skopírujete desatinnú časť čísla, ktoré sa vynásobí 2. Nie je potrebná žiadna binárna konverzia! Napríklad mantisa bude 010101001 od 01,010101001 ∗ 26 {\ displaystyle 01,010101001*2^{6}} .
- 11Zostavte 3 diely do jedného konečného čísla.
- Nakoniec do vašej konverzie zhrniete všetko, čo sme doteraz vypočítali. Najprv sa začne 0 alebo 1 bitom, ktorý ste určili v kroku 7 na základe znamienka. Napríklad na jeho spustenie budete mať 0.
- Ďalej budete mať časť exponentu, ktorú ste určili v kroku 9. Váš príklad bude napríklad 10000 01.
- Teraz máte mantisu, ktorá je treťou a poslednou časťou konverzie. Odvodili ste to skôr, keď ste zobrali desatinnú časť konverzie na základe 2. Napríklad mantisa bude 010101001.
- Nakoniec to všetko spojíte. Poradie by malo byť znamienko-exponent-mantisa. Potom, čo spojíte tieto tri binárne čísla, vyplníte zvyšok mantisy 0 s.
- Riešením je napríklad 0 10000101 0101010010000000000000000 ako 85,125 prevedených do formátu IEEE 754.
Prečítajte si tiež: Ako nájsť súhrn piatich čísel v štatistikách?