Přeskočit na obsah

Šestnáctková soustava

Z Infopedia
Rozbalit box

Obsah boxu

Šestnáctková soustava
PoužitíInformatika, programování, webdesign, reprezentace barev, adresace paměti
Jiné názvyHexadecimální soustava
Základ16
NázevŠestnáctková soustava
Symboly0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Šestnáctková soustava (též hexadecimální soustava) je polyadická číselná soustava o základu 16. Pro zápis čísel v této soustavě se používá 16 symbolů. Těmito symboly jsou číslice od 0 do 9 (deset symbolů) a prvních šest písmen latinské abecedy: A, B, C, D, E, F (šest dalších symbolů). Tyto písmena reprezentují hodnoty 10 až 15 v desítkové soustavě.

Tato soustava se masivně využívá v oblasti informatiky a digitální techniky, protože její základ 16 je čtvrtou mocninou čísla 2 (16 = 2⁴). To umožňuje velmi snadný a přímý převod mezi šestnáctkovou a dvojkovou (binární) soustavou, které rozumí počítače. Jedna šestnáctková číslice tak reprezentuje právě čtyři bity (nibble).

📜 Historie a původ

Ačkoliv systémy založené na základu 16 existovaly v různých formách již dříve (například tradiční čínská měrná jednotka čin se dělila na 16 liangů), moderní podoba šestnáctkové soustavy je neoddělitelně spjata s rozvojem počítačů.

V raných dobách výpočetní techniky se programátoři potýkali s dlouhými a nepřehlednými řetězci nul a jedniček binárního kódu. Pro zjednodušení práce se začala používat osmičková (oktalová) soustava (základ 8), kde jedna číslice reprezentovala tři bity.

Skutečný průlom pro šestnáctkovou soustavu přišel v roce 1963 s uvedením počítače IBM System/360. Tento sálový počítač a jeho následovníci definovali bajt jako skupinu 8 bitů, což se stalo de facto standardem. Protože 8 je dělitelné čtyřmi, ale ne třemi, stala se šestnáctková soustava mnohem praktičtější než osmičková. Dvě šestnáctkové číslice mohly elegantně reprezentovat přesně jeden bajt (např. 11111111₂ = FF₁₆).

Volba písmen A–F pro číslice 10–15 byla logickým rozšířením zavedených deseti arabských číslic. Tato konvence byla rychle přijata a stala se celosvětovým standardem v oblasti programování a hardwarového inženýrství.

⚙️ Princip a zápis

Šestnáctková soustava je poziční číselná soustava, což znamená, že hodnota každé číslice závisí na její pozici v čísle. Každá pozice představuje mocninu základu 16. Číslice na nejnižší pozici (zcela vpravo) se násobí 16⁰ (což je 1), druhá zprava se násobí 16¹, třetí 16² atd.

Například číslo 3B7F v šestnáctkové soustavě lze rozepsat takto:

  • F je na pozici 16⁰, jeho hodnota je 15. Výpočet: 15 × 16⁰ = 15 × 1 = 15
  • 7 je na pozici 16¹, jeho hodnota je 7. Výpočet: 7 × 16¹ = 7 × 16 = 112
  • B je na pozici 16², jeho hodnota je 11. Výpočet: 11 × 16² = 11 × 256 = 2816
  • 3 je na pozici 16³, jeho hodnota je 3. Výpočet: 3 × 16³ = 3 × 4096 = 12288

Celková hodnota v desítkové soustavě je součtem těchto hodnot: 15 + 112 + 2816 + 12288 = 15231.

Způsoby zápisu

Aby se předešlo záměně s čísly v jiných soustavách, používá se několik konvencí pro označení, že se jedná o šestnáctkové číslo:

  • Prefix `0x`: Nejběžnější v programovacích jazycích jako C, C++, Java, Python nebo JavaScript (např. `0x3B7F`).
  • Prefix `$`: Používán v některých assemblerech a starších jazycích jako Pascal.
  • Postfix `h` nebo `H`: Používán v assemblerech a některých specifikacích (např. `3B7Fh`).
  • Dolní index `16`: Matematický zápis (např. 3B7F₁₆).
  • Prefix `#`: Používá se pro definici barev v HTML a CSS (např. `#FFFFFF` pro bílou).

Tabulka hodnot

Přehled hodnot šestnáctkových číslic
Šestnáctková číslice Desítková hodnota Dvojková hodnota (4 bity)
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111

🔄 Převody mezi soustavami

Snadné převody, zejména mezi binární a šestnáctkovou soustavou, jsou hlavním důvodem její popularity.

Z šestnáctkové do desítkové

Převod se provádí vynásobením každé číslice odpovídající mocninou základu 16 a sečtením výsledků, jak bylo ukázáno výše na příkladu čísla 3B7F₁₆.

Další příklad: 1A5₁₆

  • 5 × 16⁰ = 5 × 1 = 5
  • A (10) × 16¹ = 10 × 16 = 160
  • 1 × 16² = 1 × 256 = 256
  • Součet: 5 + 160 + 256 = 421₁₀

Z desítkové do šestnáctkové

Převod se provádí metodou postupného dělení základem 16 a zapisováním zbytků. Příklad: Převod čísla 421₁₀ 1. 421 ÷ 16 = 26, zbytek 5 2. 26 ÷ 16 = 1, zbytek 10 (což je A) 3. 1 ÷ 16 = 0, zbytek 1

Zbytky se čtou odspodu nahoru, takže výsledek je 1A5₁₆.

Mezi šestnáctkovou a dvojkovou

Tento převod je klíčový a triviální. Každá šestnáctková číslice odpovídá přesně jedné čtveřici binárních číslic (nibblu).

  • Převod z šestnáctkové do dvojkové: Každá hexadecimální číslice se nahradí odpovídající čtveřicí bitů z tabulky.

Příklad: BEEF₁₆

  • B → 1011
  • E → 1110
  • E → 1110
  • F → 1111

Výsledek: 1011111011101111₂

  • Převod z dvojkové do šestnáctkové: Binární číslo se rozdělí zprava doleva na čtveřice bitů (pokud na začátku nezbývá celá čtveřice, doplní se zleva nulami). Každá čtveřice se pak nahradí odpovídající šestnáctkovou číslicí.

Příklad: 11010110101101₂ 1. Rozdělení na čtveřice: `0011 0101 1010 1101` (doplněny dvě nuly zleva) 2. Převod čtveřic:

  * 0011 → 3
  * 0101 → 5
  * 1010 → A
  * 1101 → D

Výsledek: 35AD₁₆

💻 Využití v informatice

Šestnáctková soustava je v informatice všudypřítomná, protože poskytuje lidsky čitelnou reprezentaci binárně kódovaných dat.

  • Reprezentace dat: Jeden bajt (8 bitů) je reprezentován dvěma šestnáctkovými číslicemi (např. 00 až FF). To je mnohem kratší a přehlednější než zápis osmi nul a jedniček.
  • Adresace paměti: Paměťové adresy v počítači jsou typicky zobrazovány v šestnáctkové soustavě. Programátoři a systémoví administrátoři tak snadno identifikují konkrétní místa v operační paměti.
  • Definice barev: V webdesignu a grafickém designu se používá model RGB k definici barev. Barva je zapsána jako šestice hexadecimálních číslic (např. `#RRGGBB`), kde RR je hodnota červené složky, GG zelené a BB modré. Například `#FF0000` je čistá červená, `#00FF00` čistá zelená a `#FFFFFF` je bílá. Existuje i varianta s alfa kanálem (průhledností) `#RRGGBBAA`.
  • Kódování znaků: Standardy jako ASCII a Unicode používají šestnáctkovou soustavu k jednoznačné identifikaci znaků. Například znak 'A' má v Unicode kód `U+0041`.
  • URL kódování: Speciální znaky v URL adresách jsou kódovány pomocí znaku procenta a dvou šestnáctkových číslic (např. mezera se kóduje jako `%20`).
  • Hašovací funkce: Výstupy kryptografických hašovacích funkcí jako MD5, SHA-1 nebo SHA-256 jsou standardně reprezentovány jako řetězce šestnáctkových číslic.
  • Chybové kódy: Mnoho operačních systémů a aplikací zobrazuje chybové kódy v hexadecimálním formátu, což pomáhá při diagnostice problémů.

💡 Pro laiky

Představte si, že počítáte, ale místo deseti prstů (jako v naší běžné desítkové soustavě) jich máte šestnáct. Když dojdete k číslu devět, prsty vám dojdou. Co teď? V šestnáctkové soustavě si "půjčíme" písmenka. Desítka se tedy nezapíše jako "10", ale jako "A". Jedenáctka je "B", dvanáctka "C" a tak dále až po patnáctku, která je "F". Teprve šestnáctka se zapíše jako "10" (jedna šestnáctka a nula jednotek).

Proč je to užitečné? Počítače "myslí" jen v jedničkách a nulách (dvojková soustava). Pro člověka je ale čtení dlouhých řad jako `1111101011001110` velmi nepraktické. Šestnáctková soustava funguje jako dokonalý "překladatel" mezi řečí počítačů a řečí lidí. Každé čtyři jedničky a nuly se dají zapsat jako jeden jediný šestnáctkový znak. Zmíněná dlouhá řada se tak zkrátí na přehledné `FACE`.

Nejčastěji se s tím setkáte u barev na webu. Kód jako `#FF6347` je vlastně recept pro váš monitor, napsaný v šestnáctkové soustavě. Říká mu: "Namíchej maximální množství červené (FF), trochu méně zelené (63) a ještě méně modré (47)." Výsledkem je určitý odstín oranžovo-červené barvy.


⏰ Tento článek je aktuální k datu 27.12.2025

💬 Diskuze k článku