Hlavní obsah
Informatika – Počítače a internet
Šestnáctková čísla
Binární čísla jsou pro počítače skvělým způsobem, jak mohou reprezentovat čísla. Pro lidi však tak skvělá nejsou – jsou hodně dlouhá a spočítat všechny 1 a 0 chvilku trvá. Když počítačoví vědci pracují s čísly, často používají buď desítkovou soustavu, nebo šestnáctkovou soustavu. Ano, další číselná soustava!
Číselné soustavy jsou si naštěstí více podobné, než odlišné, a nyní, když už ovládáš desítkovou a dvojkovou soustavu, bude ti ta šestnáctková snad dávat smysl.
V desítkové soustavě představuje každá číslice mocninu 10 – jednotky, desítky atd. Číslo 10 proto nazýváme základem desítkové soustavy.
V šestnáctkové soustavě představuje každá číslice mocninu 16.
Zde je ukázka toho, jak v šestnáctkové soustavě napočítat do 10: 1, 2, 3, 4, 5, 6, 7, 8, 9, start text, A, end text.
Vypadá to docela povědomě, až na poslední "číslo" start text, A, end text. V šestnáctkové soustavě musí každá číslice reprezentovat hodnoty 0-15, ale desítková čísla 10-15 se nevejdou do jediné číslice. Jako řešení používá šestnáctková soustava k vyjádření čísel 10-15 písmena start text, A, end text-start text, F, end text.
Pojďme napočítat od 10 do 15: start text, A, end text, start text, B, end text, start text, C, end text, start text, D, end text, start text, E, end text, start text, F, end text. Zvláštní, ale funguje to!
Ve skutečnosti bylo během let předloženo mnoho různých návrhů pro to, jak reprezentovat hodnoty 10-15, ale start text, A, end text-start text, F, end text je řešením, které vyhrálo.
Pojďme se nyní podívat na větší čísla. Zde je desítkové číslo 24, které je v šestnáctkové soustavě vyjádřeno jako 18:
1 | 8 |
---|---|
16 | 1 |
16, start superscript, 1, end superscript | 16, start superscript, 0, end superscript |
Toto číslo potřebuje k zápisu dvě číslice, kde pravá číslice představuje místo pro jednotky (16, start superscript, 0, end superscript) a levá číslice představuje místo pro šestnáctky (16, start superscript, 1, end superscript). Stejně jako jsme sčítali desítková a binární čísla, můžeme sečíst left parenthesis, 1, dot, 16, right parenthesis, plus, left parenthesis, 8, dot, 1, right parenthesis a uvidíme, že šestnáctkové 18 se rovná desítkové hodnotě 24.
Pojďme si teď vyzkoušet číslo s písmenem. Zde je desítkové číslo 27, které je v šestnáctkové soustavě zastoupeno jako 1, start text, B, end text:
1 | start text, B, end text |
---|---|
16 | 1 |
16, start superscript, 1, end superscript | 16, start superscript, 0, end superscript |
Pro porozumění zápisu si musíme nejprve vybavit, že start text, B, end text představuje hodnotu 11. Uděláš to tak, že si na prstech ruky spočítáš písmena. Klidně to můžeš počítat i jiným způsobem, musíš si ale pamatovat, že je potřeba začít písmenem start text, A, end text reprezentujícím číslo 10.
Pak to stejně jako předtím sečteme a uvidíme, že left parenthesis, 1, dot, 16, right parenthesis, plus, left parenthesis, 11, dot, 1, right parenthesis se rovná desítkové hodnotě 27.
Proč je základem 16?
V této chvíli tě možná zajímá, proč mají počítačoví vědci šestnáctkovou soustavu tak rádi. Jaký to má smysl používat soustavu, kde pro reprezentaci čísel používáme písmena? Malá odbočka do historie nám to osvětlí...
První počítače používaly 4 bitovou architekturu, což znamenalo, že zpracovávaly bity ve skupinách po 4. To je důvodem toho, proč dnes zapisujeme bity ve skupinách po 4, jako když píšeme 0111 pro reprezentaci desítkového čísla 7, přestože by stačilo napsat 111.
Jaké množství hodnot lze pomocí 4 bitů reprezentovat? Nejnižší hodnota je 0 (všude 0, tedy 0000) a nejvyšší hodnota je 15 (všude 1, tedy 1111), takže 4 bity mohou reprezentovat 16 jedinečných hodnot. Aha, tak tady máme to číslo 16!
Každá skupina 4 bitů ve dvojkové soustavě odpovídá jedné číslici v šestnáctkové soustavě. Díky tomu je převádět binární čísla na šestnáctková čísla opravdu snadné a pro počítače je to proto zcela přirozené.
Převod binárních čísel na šestnáctková
Pojďme si převodem binárních čísel na šestnáctková ověřit, jak dobře se binární a šestnáctková čísla snáší.
Začneme kratším binárním číslem:
Číslo je 4 bity dlouhé, což znamená, že odpovídá jedné šestnáctkové číslici. Na každém místě kromě místa pro dvojky je 0, takže se rovná desítkovému číslu 2. Desítková i šestnáctková soustava reprezentují čísla 0-9 stejným způsobem, takže 0010 je v šestnáctkové soustavě jednoduše 2.
Zkusme delší binární číslo:
Jedním z možných přístupů je zjistit, jaké desítkové číslo je dlouhým řetězcem čísel 1 a 0 reprezentováno a následně jej převést do šestnáctkové soustavy. Tento přístup by fungoval, ale pracovat s tak dlouhým číslem dá hodně práce.
Mnohem jednodušším přístupem je převést každou skupinu 4 bitů, postupně jednu po druhé.
Začneme se skupinou nejvíce vlevo 1001, ta se rovná left parenthesis, 1, dot, 8, right parenthesis, plus, left parenthesis, 1, dot, 1, right parenthesis, desítkové číslo 9. Toto číslo je menší než 10, takže 1001 je v šestnáctkové soustavě jednoduše 9.
Další skupinou je 1010, ta rovná se left parenthesis, 1, dot, 8, right parenthesis, plus, left parenthesis, 1, dot, 2, right parenthesis, desítková hodnota 10. Toto číslo se v šestnáctkové soustavě reprezentuje písmenem start text, A, end text.
Další skupinou je 0110, ta se rovná left parenthesis, 1, dot, 4, right parenthesis, plus, left parenthesis, 1, dot, 2, right parenthesis, desítková hodnota 6. Toto číslo se v šestnáctkové soustavě reprezentuje jako 6.
Poslední skupinou je 1100, ta se rovná left parenthesis, 1, dot, 8, right parenthesis, plus, left parenthesis, 1, dot, 4, right parenthesis, desítková hodnota 12. Toto číslo se v šestnáctkové soustavě reprezentuje písmenem start text, C, end text.
Náš konečný šestnáctkový výsledek je 9, start text, A, end text, 6, start text, C, end text. Tento převod jsme provedli, aniž bychom věděli, jaké desítkové číslo je reprezentováno. Nyní ti prozradíme, že 1001101001101100 a 9, start text, A, end text, 6, start text, C, end text se rovnají desítkovému číslu 39532. Je to neuvěřitelně velké číslo, takže jsme rádi, že se nám ho povedlo převést jednu číslici po druhé.
Vzorce šestnáctkových čísel
Pojďme teď uchopit šestnáctkovou soustavu trochu intuitivněji.
Zaprvé: jak bude pro daný počet číslic vypadat jejich největší možné číslo? V desítkové soustavě jsou to samé 9, jako je 9999. Ve dvojkové soustavě jsou to samé 1, jako je 1111.
V šestnáctkové soustavě bude každá číslice obsahovat start text, F, end text, start text, F, F, F, F, end text. Když takovéto číslo uvidíme, víme, že pro daný počet číslic představuje nejvyšší možnou hodnotu. K reprezentaci vyššího čísla bychom potřebovali více číslic.
Jak velké číslo lze tedy takto reprezentovat? Můžeme použít stejné pravidlo, které jsme použili u binárních čísel: největší číslo, které lze reprezentovat počtem číslic n je stejné jako 16, start superscript, n, end superscript, minus, 1. Když teď máme místo základu 2 základ 16, možná k tomu budeme potřebovat kalkulačku.
Zde je tabulka prvních čtyř největších hodnot:
Počet číslic | Největší šestnáctkové číslo | Desítkový ekvivalent |
---|---|---|
1 | start text, F, end text | 15, left parenthesis, 16, start superscript, 1, end superscript, minus, 1, right parenthesis |
2 | start text, F, F, end text | 255, left parenthesis, 16, squared, minus, 1, right parenthesis |
3 | start text, F, F, F, end text | 4095, left parenthesis, 16, cubed, minus, 1, right parenthesis |
4 | start text, F, F, F, F, end text | 65535, left parenthesis, 16, start superscript, 4, end superscript, minus, 1, right parenthesis |
Použití šestnáctkové soustavy
V této sekci o fungování počítačů budeme pracovat převážně s binárními čísly. Je však důležité pochopit také šestnáctkovou soustavu, protože se bude během pozdějších lekcí objevovat a každý programátor by ji měl znát.
Jako příklad ze života uvedeme, že šestnáctkovou soustavu používají weboví vývojáři pro reprezentaci barev. Barvy popisujeme jako kombinaci tří složek: červené, zelené a modré. Každá z těchto složek se může pohybovat od 0 do 255. Barva jako modrá může být napsána jako
rgb(0, 0, 255)
nebo výstižnější šestnáctková verze, #0000FF
. Pomocí tohoto značení můžeme popsat 16, start superscript, 6, end superscript unikátních barev — více než 16 milionů barev!Nyní, když už znáš šestnáctková čísla, zkus jim věnovat větší pozornost. Často je uvidíš zapsané s
0x
na začátku, jako je 0x4F
, nebo možná rozpoznáš jejich odlišnou kombinaci čísel 0-9
s A-F
. Pokud na ně někde narazíš, určitě se se svým objevem poděl v sekci Tipy & Poděkování.🙋🏽🙋🏻♀️🙋🏿♂️Máš k tomuto tématu nějaké dotazy? Rádi ti je zodpovíme — zeptej se v sekci pro dotazy níže!
Chceš se zapojit do diskuze?
Zatím žádné příspěvky.