2. Zobrazení čísel v pohyblivé řádové čárce

2.3. Zobrazená čísla ve formátu binary 32 standardu IEEE 754

Při pokusu o zjištění, jaké číslo z desítkové soustavy se zobrazilo v binárním formátu s určitou přesností dle standardu IEEE 754 použijete inverzní kroky oproti těm z předchozí kapitoly. Pro číslo zobrazené ve formátu binary32 vše shrnuje následující obrázek:

Z binary32 do 10 v IEEE 754
Obr. 7: Schéma pro zjištění čísla, které se zobrazilo ve formátu binary32 ve standardu IEEE 754.

Obecně budete postupovat takto:

  1. Podle nejvýznamnějšího místa poznáme znaménko s (0 = +; 1 = −).
  2. Určitý počet pozic za nejvýznamnějším místem (dle formátu 8, 11 nebo 15) tvoří exponent e, který je třeba převést zpět do desítkové soustavy (způsob si připomeňte v případě potřeby v příslušné studijní kapitole). Od získaného čísla podle formátu odečtete hodnotu 127, 1023 nebo 16383 v desítkové soustavě (exponent byl zobrazen v kódu s posunutou nulou).
  3. Číslo na zbývajících místech opět převedete známým způsobem do desítkové soustavy, čímž získáte hodnotu fraction.
  4. Dosadíte za s, e, f do vztahu: H10 = (−1)s × (1 + f) × 2e a vypočteme číslo, které bylo dle standardu IEEE 754 zobrazeno.

Příklad

Pokud chcete zjistit, jaké číslo se zobrazilo ve formátu s jednonásobnou přesností ve standardu IEEE 754 jako 110000100101001100110011001100112IEEE754, uděláte to následujícím způsobem.

1. Číslo si rozdělíte na tři části 1|10000100|101001100110011001100112IEEE754.

2. Znaménko:

  • První místo 12 určuje, že číslo v desítkové soustavě bylo záporné, protože (−1)1 = −110.

3. Exponent:

  • Následujících osm míst 100001002 dá po převodu do desítkové soustavy číslo 13210.
  • Pokud chcete získat správnou hodnotu exponentu, musíte ještě odečíst číslo 12710 a zjistíte, že e = 510.

4. Fraction:

5. Mantisa:

  • K fraction přičtete 110, čímž získáte mantisu 1,6499999761581420898437510.

6. Výsledek:

  • Dosadíte do semilogaritmického tvaru H10 = (−1)1 × 1,64999997615814208984375 × 25.
  • Výpočtem zjistíte, že se zobrazovalo číslo 52,79999923706054687510.

Je uvedené číslo v desítkové soustavě opravdu tím, které do zobrazení vstupovalo?