Author: MDT | Added:13.4.2007 15:58 | Last update: 11.5.2007 00:09 | Readed: 3587x
Tak nejdříve si řekneme, k čemu nám ta hexadecimální neboli ?estnactková soustava vlastně slou?í. Často se pou?ívá kvůli krátkosti jejího zápisu a úspory místa například při ladění programu, v registrech apod. Zápis v binární soustavě je hrozně dlouhý a dekadická soustava se zase nepou?ívá kvůli problémům se znaménkem. Vy ale hexadecimální soustavu nejspí? budete znát díky tomu, ?e se v ní často pí?i barvy, a ?e například #ff0000 je červená, #00ff00 je zelená a #0000ff je modrá. Hexadecimální nebo-li ?estnáctková se jí říká proto, proto?e dosahuje pouze 16 hodnot, 0-9 a A-F, kdy hodnoty 0-9 v dekadické soustavě odpovídají hodnotám 0-9 v hexadecimální soustavě a hodnoty 10-15 v dekadické soustavě odpovídají hodnotám A-F v hexadecimální soustavě (tedy A je 10, B je 11 atd.). Je jedno jestli písmena budeme psát velkým nebo malým. Teď si uká?eme, jak mů?eme převádět z dekadické do hexadecimální a naopak.
Dekadická -> Hexadecimální
Převody jsou celkem slo?itěj?í. Vezmeme si třeba číslo 177. Uká?u nejdřív příklad:177 / 16 = 11
17
1
11 / 16 = 0
11
Jak vidíte, dělíme původní číslo 177 ?estnácti (zbyde nám zbytek 1), potom dělíme číslo, které nám vy?lo znovu ?estnácti (výjde nám zbytek 11). Teď sepí?eme zbytky odspodu, tedy 11 a 1, víme, ?e jedenáctce odpovídá hexadecimální hodnotě B a jedničce odpovída hexidecimální hodnotě 1, z toho plyne ?e 177(10) = B1(16). Teď si uká?eme je?tě jeden příklad, po kterém u? byste to měli zaručeně pochopit.
2157 / 16 = 134
55
77
13
134 / 16 = 8
6
8 / 16 = 0
8
Opět sepí?eme zbytky od konce, tedy 8, 6 a 13, osmičce odpovída hexidecimální hodnota 8, ?estce odpovída hexadecimální hodnota 6 a třináctce odpovídá hexidecimální hodnota D. Výsledek je tedy 86D. Doufám, ?e to v?ichni chápete a mů?eme se vrhnout na opačný převod.
Hexadecimální -> Dekadická
Tak?e vezmeme si úplně první číslo, se kterým jsme pracovali, tedy číslo 177. To jsme si převedli do hexadecimální soustavu, kde má toto číslo hodnotu B1. Ale jak převést B1 zpátky na 177? Jednodu?e, nejdříve opět napí?u příklad.
B1(16) = 11 * 161 + 1 * 160 = 176 + 1 = 177(10)
A máme to. Je to celkem podobné jak převod z binární do dekadické. Nebo? jsem trochu v koncích s tím, jak vám to mám vysvělit, uvedu nejdříve je?tě dal?í dva příklady.
86D(16) = 8 * 162 + 6 * 161 + 13 * 160 = 2048 + 96 + 13 = 2157(10)
1000(16) = 1 * 163 + 0 * 162 + 0* 161 + 0 * 160 = 4096 + 0 + 0 + 0 = 4096(10)
Tak myslím, ?e teď u? to v?ichni pochopili, ale jestli ne, tak udělám malé vysvětlení. Nejdříve si ka?dou hodnotu v hexadecimální soutavě převedeme na hodnotu v dekadické soustavě. Poté ka?dou z těchto hodnot vynásobíme některou mocninou čísla 16. První mocnina je rovna počtu hodnot mínus jedna, ka?dá dal?í mocnina ?estnácti je o jedna men?í a? po nulu. Nemyslím si, ?e byste to na základě tohoto vysvětlení pochopili, ale doufám, ?e to pochopíte na základě příkladu. Pokud budete chtít článek roz?ířit, napi?te na mejl.
-------------------------------------------------------------------------------------------------------------------------