Šestnáctková čísla, často zkracovaná na „šestnáctková čísla“ nebo „hex“, jsou čísla reprezentovaná v základu 16 na rozdíl od základu 10, který používáme pro každodenní aritmetiku a počítání.
V praxi to znamená, že každý sloupec čísla zapsaného v šestnáctkové soustavě může reprezentovat až 16 hodnot.
V programování až na výjimky předřazujeme hexadecimálním konstantám znak 0x
.
Příklady a vysvětlení
0x1 == 10xF == 150xFF == 2550xFFF == 40950x1000 == 4096
V standardní soustavě základu 10 představuje každý sloupec rostoucí mocniny 10, zatímco v základu 16 představuje každý sloupec rostoucí mocniny 16.
Jak je vidět z výše uvedeného příkladu tabulky, pomocí jedné šestnáctkové číslice můžeme reprezentovat čísla až do 15 včetně. Přidáme-li další sloupec, můžeme čísly reprezentovat až 255, dalším sloupcem 4095 a tak dále.
Použití šestnáctkové soustavy v nízkoúrovňovém programování
Šestnáctková soustava našla poprvé uplatnění v informatice jako komfortní funkce.
Data v našich počítačích mají nejnižší společnou paměťovou jednotku, bajt. Každý bajt obsahuje 8 bitů a je schopen uložit číslo v rozsahu 0 až 255 včetně.
Šestnáctková soustava má tu výhodu, že je stručná a má dobře definované hranice.
Jediný bajt je vždy reprezentován dvěma šestnáctkovými číslicemi od 0x00 do 0xFF, přičemž poslední z nich je největší hodnota na bajt 255.
Teritoriálnost a zarovnání bajtů šestnáctkových čísel z nich činí oblíbenou volbu pro softwarové inženýry pracující na nízkoúrovňových kódových bázích nebo vestavěném softwaru.
Použití šestnáctkových čísel v jazyce JavaScript
JavaScript podporuje použití šestnáctkového zápisu místo libovolného celého čísla, ale ne desetinných čísel.
Příklad číslo 2514 v šestnáctkové soustavě je 0x9D2, ale neexistuje žádný jazykem podporovaný způsob reprezentace čísla 25.
Příklad číslo 2514 v šestnáctkové soustavě je 0x9D2.14 jako šestnáctkové číslo.
Použití šestnáctkové soustavy v kódu je osobní a stylistická volba a nemá žádný vliv na základní logiku, kterou váš kód implementuje.
Použití šestnáctkových čísel v CSS
CSS již dlouhou dobu používá šestnáctkový zápis pro reprezentaci hodnot barev. Vezměme si následující selektor:
.my-container { background-color: #112233; color: #FFFFFF;}
Hodnota background-color
je ve skutečnosti tři hexabajty.
Procesor CSS s nimi zachází jako se třemi jednotlivými bajty, které představují červenou, zelenou a modrou barvu.
V našem příkladu odpovídá 11 červené barevné složce, 22 zelené barevné složce a 33 modré barevné složce.
V současné době od verze CSS3 neexistuje způsob, jak definovat barvu s alfa složkou pomocí hexabajtu. Navrhovaná verze CSS4 Draft1 obsahuje návrh, který umožňuje přidání dalšího bajtu pro zadání hodnoty alfa.
Prozatím je doporučeným způsobem přidání hodnoty alfa k barvám použití standardní funkce rgba()
.
.