V minulém díle jsem mluvil o tom, jak počítače nedokážou reprezentovat většinu desetinných čísel přesně. Nemluvil jsem ale o tom, jak se s desetinnými čísly vlastně konkrétně v počítačích pracuje.
Už víte, že pro celá čísla je nutné, aby to číslo mělo nějaký rozsah. Například 1 bajt je číslo v rozsahu 28 což může být číslo od 0 do 255 nebo od -128 do +127.
Pro desetinná čísla se používá 32 bitový a 64 bitový rozsah.
Příklad
Řekněme, že máte 32 bitů.
00000000000000000000000000000000
Jak do toho uložíte třeba číslo pí, které si zaokrouhlíme na 3,14?
- Desetinné číslo se skládá z celé a desetinné části.
- Jsou to vlastně dvě skupiny cifer: 3 a 14.
Takže můžete prostě jednoduše říct, že tato čísla převedete do dvojkové soustavy jako celá čísla:
- 310 = 112
- 1410 = 11102
Takže máte teď bity 11 a další bity 1110 které potřebujete nějak uložit do 32 bitů. Jak to uděláte? Všimněte si, že bity jsou prostě jen bity, signál je signál a žádné desetinné čárky v těch obvodech nejsou.
Jeden možný způsob je fixní desetinná čárka.
32 bitů rozdělíte na dvě skupiny: na celou a desetinnou část, třeba půl na půl: 16 bitů pro celou část, 16 bitů pro desetinnou část
0000000000000011: celá část
0000000000001110: desetinná část
3,14 = 00000000000000110000000000001110
Tento způsob není moc užitečný z několika důvodů
- Pokud procesor postavíte nad fixní desetinnou čárkou, nemáte možnost to změnit.
- Musíte při výrobě procesoru odhadnout, jak velká by měla být celá část a jak velká desetinná část. Jedno je na úkor druhého. Jenže různá odvětví vyžadují různě přesná/velká čísla, jako výrobce procesorů si nemůžete dovolit vyrábět pro každé odvětví procesory s různě stanovenými fixními čárkami, proto musíte vymyslet jiné řešení. Viz. další kapitola.
Shrnutí
- Fixní desetinná čárka je „kód“, jakým lze reprezentovat desetinná čísla.
- Tento způsob se v počítačích nepoužívá protože nelze nijak inteligentně určit, v jakém poměru by měla být celá a desetinná část.