Hexadecimální (šestnáctková) číselná soustava – definice a použití

Poznejte hexadecimální (šestnáctkovou) soustavu: definice, převody, A–F, nibble/byte a praktické použití v programování a počítačové architektuře pro začátečníky i profíky.

Autor: Leandro Alegsa

Šestnáctková číselná soustava (někdy zkracovaně hex nebo hexa) je číselná soustava tvořená 16 symboly (základ 16). Standardní soustava, kterou běžně používáme, je desítková (základ 10) a používá deset symbolů 0–9. Šestnáctková soustava používá tyto desítkové číslice a dále šest písmen z latinky: A, B, C, D, E, F. Platí A = 10 až F = 15 v desítkové soustavě.

Základní vlastnosti

Počítače pracují v binární soustavě (s bity = 0 nebo 1). Pro snadnější čtení a zápis dlouhých binárních řetězců se bity seskupují — nejčastěji po čtyřech. Čtyři bity mohou reprezentovat 16 hodnot (0–15), proto je hex ideální pro práci s byty a slovy v počítačích.

V počítačovém žargonu se čtyřbitový blok nazývá nibble (někdy nybble). Jeden nibble odpovídá jedné šestnáctkové číslici (0–F). Dva nibbley tvoří byte (8 bitů). Díky tomu lze každé dvojici hex číslic přímo přiřadit jeden byte: např. 0x3A = binárně 0011 1010.

Seskupování a historie

Historicky se bity seskupovaly i po třech (osm možností) – to vedlo k osmičkové soustavě. Přešel-li se na čtyřbity, počet reprezentovatelných hodnot se zdvojnásobil (z 8 na 16), což vedlo k běžnému používání šestnáctkové soustavy v informatice.

Převody mezi soustavami — příklady

  • Hex → binárně: každé hex číslo přepište jako čtyři bity. Např. 0x63 = 6 (0110) a 3 (0011) → 0110 0011 (binárně).
  • Hex → desítkově: přiřaďte mocniny 16. Např. 0x63 = 6×16¹ + 3×16⁰ = 96 + 3 = 99 (desítkově).
  • Desítkově → hex: dělte číslo 16 a sbírejte zbytky. Např. 255 ÷ 16 = 15 zbytek 15 → 255 = 0xFF.
  • Příklad vícemístného převodu: 0x1A3 = 1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419 (desítkově).

Tabulka převodu jedné hex číslice (0–F) na binární čtyřbitové vzory

  • 0 = 0000
  • 1 = 0001
  • 2 = 0010
  • 3 = 0011
  • 4 = 0100
  • 5 = 0101
  • 6 = 0110
  • 7 = 0111
  • 8 = 1000
  • 9 = 1001
  • A = 1010
  • B = 1011
  • C = 1100
  • D = 1101
  • E = 1110
  • F = 1111

Zápis a čitelné notace

Aby nedocházelo k záměně mezi soustavami, používají se různé konvence zápisu šestnáctkových čísel:

  • 0x prefix: běžný v C, C++, Java, Python apod. (např. 0x63).
  • h sufix: často v některých assemblerových zápisech (např. 63h). Pozor: u hodnot začínajících písmenem se někdy píše vedle nuly, např. 0FFh.
  • V CSS a HTML se barevné hodnoty RGB zapisují s # (např. #FF0000 = čistě červená).
  • Některé jazyky/překladače používají jiné konvence (např. Pascal používá $ jako prefix: $FF).

Písmena A–F mohou být psána velká i malá; jejich význam je stejný (0xAF = 0xaf).

Použití v praxi

  • Adresy paměti a dumpy paměti (hex dump) — lidé při ladění čtou obsahy paměti v hexu.
  • Barevné kódy v grafice a webdesignu (RGB hex kódy, např. #FFFFFF pro bílou).
  • Reprezentace hodnot v síťových protokolech a MAC adresách (často dvojice hex číslic oddělené dvojtečkami nebo pomlčkami).
  • Jednodušší vizualizace a manipulace s bity při práci s bitovými poli, maskami a posuny.

Drobné poznámky

  • Slovo „hexadecimal“ pochází z řeckého/latinského složení (hex = šest, deca = deset), tedy „šestnáct“.
  • Při interpretaci hex hodnot je důležité vědět, zda se jedná o bez znaménka nebo o dvoukomplementové (signed) číslo — binární reprezentace bytu je stejná, ale význam (kladné/ záporné) závisí na interpretaci.
  • Hex usnadňuje čtení a zápis binárních dat, ale aritmetiku většinou provádějí procesory v binárním tvaru; hex slouží především pro lidské čtení a zkrácené zápisy.

Pro příklad notace z původního textu: 63h nebo 0x63 znamená šestnáctkové číslo 63, což je v desítkové soustavě 99.

Šestnáctkové hodnoty

Šestnáctková číselná soustava je podobná osmičkové (základ 8), protože ji lze snadno porovnat s dvojkovou číselnou soustavou. Šestnáctková soustava používá čtyřbitové binární kódování. To znamená, že každá číslice v šestnáctkové soustavě je stejná jako čtyři číslice ve dvojkové soustavě. Osmibitová soustava používá tříbitovou binární soustavu.

V desítkové soustavě je první číslice na místě jedničky, další číslice vlevo je na místě desítky, další je na místě stovky atd. V šestnáctkové soustavě může mít každá číslice 16 hodnot, nikoliv 10. To znamená, že číslice mají místo jedničky, místo šestnáctky a další číslice je místo 256. Takže 1h = 1 desetinné číslo, 10h = 16 desetinných čísel a 100h = 256 desetinných čísel.

Příklady hodnot hexadecimálních čísel převedených do binární, osmičkové a desítkové soustavy.

Hex

Binární

Osmičkové

Desetinné číslo

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

A

1010

12

10

B

1011

13

11

C

1100

14

12

D

1101

15

13

E

1110

16

14

F

1111

17

15

10

1 0000

20

16

11

1 0001

21

17

24

10 0100

44

36

5E

101 1110

136

94

100

1 0000 0000

400

256

3E8

11 1110 1000

1750

1000

1000

1 0000 0000 0000

10000

4096

FACE

1111 1010 1100 1110

175316

64206

Převod

Převod z dvojkové do šestnáctkové soustavy

Změna čísla z binárního na hexadecimální používá metodu seskupování. Binární číslo je rozděleno do skupin po čtyřech číslicích, které začínají zprava. Tyto skupiny se pak převedou na šestnáctkové číslice, jak je znázorněno v tabulce výše pro šestnáctková čísla 0 až F. Pro změnu z šestnáctkové soustavy se postupuje opačně. Každá šestnáctková číslice se změní na dvojkovou a seskupení se obvykle odstraní.

Binární

Seskupení

Hex

01100101

0110

0101

65

010010110110

0100

1011

0110

4B6

1101011101011010

1101

0111

0101

1010

D75A

Pokud počet bitů v binárním čísle není násobkem 4, je doplněn nulami, aby tomu tak bylo. Příklady:

  • binární 110 = 0110, což je 6 Hex.
  • binární 010010 = 00010010, což je 12 Hex.

Převod hexadecimální na desítkovou soustavu

Převod čísla z hexadecimální do desítkové soustavy se provádí dvěma běžnými způsoby.

První metoda se častěji používá při ručním převodu:

  1. Pro každou hexadecimální číslici použijte desítkovou hodnotu. Pro 0-9 je to stejné, ale A = 10, B = 11, C = 12, D = 13, E = 14 a F = 15.
  2. Zaznamenejte si součet čísel převedených v jednotlivých krocích níže.
  3. Začněte nejméně významnou hexadecimální číslicí. To je číslice na pravém konci. To bude první položka v součtu.
  4. Vezměte druhou nejméně významnou číslici. Ta je vedle číslice na pravém konci. Vynásobte desetinnou hodnotu této číslice číslem 16. Tuto hodnotu přičtěte k součtu.
  5. Totéž proveďte pro třetí nejméně významnou číslici, ale vynásobte ji číslem 162 (tj. 16 na druhou, tj. 256). Přičtěte ji k součtu.
  6. Pokračujte pro každou číslici a každé místo vynásobte další mocninou 16. (4096, 65536 atd.)

 

Umístění

6

5

4

3

2

1

Hodnota

1048576 (165)

65536 (164)

4096 (163)

256 (162)

16(161)

1 (160)


Další metoda se častěji používá při převodu čísla v softwaru. Nepotřebuje vědět, kolik číslic má číslo, než začne, a nikdy nevynásobí více než 16, ale na papíře vypadá delší.

  1. Pro každou hexadecimální číslici použijte desítkovou hodnotu. Pro 0-9 je to stejné, ale A = 10, B = 11, C = 12, D = 13, E = 14 a F = 15.
  2. Zaznamenejte si součet čísel převedených v jednotlivých krocích níže.
  3. Začněte nejvýznamnější číslicí (číslicí zcela vlevo). To je první položka v součtu.
  4. Pokud existuje další číslice, vynásobte součet číslem 16 a přičtěte desetinnou hodnotu další číslice.
  5. Výše uvedený krok opakujte, dokud nebudou k dispozici další číslice.


Příklad: 5Fh a 3425h na desetinné číslo, metoda 1

 

5Fh na desetinné číslo

Hex

Desetinné číslo

5Fh

=

( 5 x 16 )

+

( 15 x 1 )

=

80

+

15

5Fh

=

95

 

3425h na desetinné číslo

Hex

Desetinné číslo

3425h

=

( 3 x 4096 )

+

( 4 x 256 )

+

( 2 x 16)

+

( 5 x 1 )

=

12288

+

1024

+

32

+

3425h

=

13349

Příklad: 5Fh a 3425h na desetinné číslo, metoda 2

 

5Fh na desetinné číslo

Hex

Desetinné číslo

součet

=

5

=

(5 x 16) + 15

součet

=

80 + 15 (bez dalších číslic)

5Fh

=

95

 

3425h na desetinné číslo

Hex

Desetinné číslo

součet

=

3

=

(3 x 16) + 4 = 52

součet

=

(52 x 16) + 2 = 834

součet

=

(834 x 16) + 5 = 13349

3425h

=

13349

Související stránky

Otázky a odpovědi

Otázka: Co je to šestnáctková číselná soustava?


Odpověď: Šestnáctková číselná soustava je číselný systém o základu 16, který se skládá ze 16 symbolů.

Otázka: Jakých deset symbolů se používá v desítkové soustavě (základ 10)?


Odpověď: Deset symbolů používaných v desítkové soustavě (základ 10) je 0,1,2,3,4,5,6,7,8 a 9.

Otázka: Jakých šest dalších symbolů používá šestnáctková soustava?


A: Šestnáctková soustava používá písmena převzatá z anglické abecedy - A, B, C, D, E a F.

Otázka: Kolik bitů obsahuje jeden bajt v moderních počítačích?


Odpověď: V moderních počítačích obsahuje každý bajt obvykle osm bitů.

Otázka: Jak inženýři a počítačoví vědci nazývají čtyřbitové hodnoty?


Odpověď: Inženýři a počítačoví vědci označují čtyřbitové hodnoty jako nibble (někdy psáno nybble).

Otázka: Jak se při zápisu hexadecimálních čísel vyhnete záměně s jinými číselnými systémy?


Odpověď: Abyste se při zápisu šestnáctkových čísel vyhnuli záměně s jinými číslovacími systémy, můžete za číslo přidat písmeno "h" nebo před něj písmeno "0x". Například 63h nebo 0x63 znamená 63 v šestnáctkové soustavě.


Vyhledávání
AlegsaOnline.com - 2020 / 2025 - License CC3