Sešpadsmitnieku (heksadecimālā) skaitļu sistēma ir skaitļu sistēma, kurā izmanto 16 dažādus simbolus. skaitļu sistēma, ko veido 16 simboli (16 bāze). Parastā ikdienas skaitīšana notiek decimālajā (bāze 10) sistēmā), kur simboli ir 0–9. Heksadecimālajā sistēmā pie šiem desmit cipariem pievieno sešus papildu simbolus — burti A, B, C, D, E un F — lai apzīmētu vērtības no 10 līdz 15. Tātad heksadecimālais A atbilst decimālajam 10, bet F — decimālajam 15. Nosaukums "heksadecimālais" nāk no grieķu izcelsmes elementiem, kas kopā apzīmē skaitļu sistēmu ar bāzi 16.

Kāpēc heksadecimālā izmanto datorzinātnē

Cilvēki visbiežāk izmanto decimālskaitļu sistēmu — iespējams, tāpēc, ka mums ir desmit pirksti. Datori gan strādā ar bināriem signāliem — ieslēgts/izslēgts, kuri tiek attēloti kā bīti (0 vai 1). Binārais skaitlis ir nullīšu un vieninieku virkne, piemēram, 11011011. Lai padarītu garās binārās virknes saprotamākas cilvēkiem, tās parasti grupē pa vairākiem bitiņiem.

Agrāk bītus grupēja pa trim, veidojot astoņskaitli (katra trīsbitu grupa pārstāv skaitli 0–7). Mūsdienās ērtāk bītus grupēt pa četriem, jo četri biti var attēlot 16 dažādas vērtības (0–15). Šī saikne ar 16 padara heksadecimālo sistēmu ļoti ērti izmantojamu datortehnikā: viens heksadecimālais cipars atbilst tieši četriem bitiem.

Nibble, baits un heksadecimālais

Datoržargonā četrus bitus sauc par nibble (dažreiz raksta nybble). Viens nibble atbilst vienam heksadecimālajam ciparam (0–9 vai A–F). Divi nibble veido baitu (8 bitus). Tā kā daudzas datora operācijas un atmiņas adreses tiek mērītas baitos vai bajtu grupās (16, 24, 32, 64 bitu utt.), heksadecimālā pieraksta izmantošana ievērojami atvieglo liela binārskaitļa lasīšanu un rakstīšanu.

Heksadecimālā notācija

Lai skaidri norādītu, ka skaitlis ir heksadecimāls, izmanto vairākas notācijas. Biežākās ir "0x" prefikss (piem., 0x63) vai "h" sufikss (piem., 63h). Piemēram, 63h un 0x63 apzīmē skaitli, kas izteikts heksadecimālā sistēmā ar cipariem 6 un 3. Programmēšanā un dokumentācijā parasti izmantotais formāts ir 0x####, savukārt mikroprocesoru un montāžas valodā bieži redzēsiet sufiksu h.

Kā pārveidot starp sistēmām — soļi un piemēri

Heksadecimāls → decimāls (piemērs: 1A3₂₁₆): katru heksadecimālo ciparu reiziniet ar 16 pakāpi atbilstoši tā pozīcijai (no labās puses sākot ar 16⁰). Piemērs:

  • 1A3₁₆ = 1×16² + A×16¹ + 3×16⁰ = 1×256 + 10×16 + 3×1 = 256 + 160 + 3 = 419₁₀.
  • FF₁₆ = 15×16¹ + 15×16⁰ = 240 + 15 = 255₁₀.

Decimāls → heksadecimāls (piemērs: 419₁₀ → ?): daliet skaitli ar 16 un paņemiet atlikumus (no apakšas uz augšu veido hex ciparus):

  • 419 ÷ 16 = 26 atlikums 3 → zemākais (labākais) hex cipars = 3
  • 26 ÷ 16 = 1 atlikums 10 → nākamais cipars = A
  • 1 ÷ 16 = 0 atlikums 1 → augstākais cipars = 1
  • Rezultāts: 1A3₁₆.

Heksadecimāls ↔ binārs: katrs heksadecimālais cipars atbilst četru bitu grupai (no 0000 līdz 1111). Tādēļ pārveidošana ir ātra:

  • 1A3₁₆ → 1 = 0001, A = 1010, 3 = 0011 → bināri: 0001 1010 0011 (parasti raksta bez vadošajiem nulles: 110100011).
  • Bināri 11011011 → grupējiet no labās puses pa četriem: 1101 1011 → D B → DB₁₆ (tātad 11011011₂ = 0xDB).

Biežākie pielietojumi

  • Atmiņas adreses un mašīnas instrukcijas — īsāks un pārskatāmāks pieraksts nekā garas binārvirknes.
  • Krāsu kodi tīmekļa dizainā — RGB krāsas bieži tiek attēlotas kā #RRGGBB (piem., #FF0000 = sarkana).
  • Debugging un zemas līmeņa programmēšana (assembly, ierīču draiveri), kur bitu un baitu līmenis ir svarīgs.

Piezīmes un padomi

  • Atcerieties, ka heksadecimālā ciparu kopa ir 0–9 un A–F (A=10 ... F=15).
  • Heksadecimālā pierakstā bieži izmanto prefiksu 0x (C, C++, C#, daudzas citas valodas) vai sufiksu h (dažās montāžas valodās).
  • Ja strādājat ar bināru datu grupām, atcerieties, ka četri biti = viens heksadecimāls cipars, un tāpēc pāreja starp bināro un heksadecimālo ir tieša un ātra.

Heksadecimālā sistēma padara cilvēkam saprotamu un pārlūkojamu to, kas citādi datora valodā būtu garas nulles un vieninieki — tāpēc tā ir plaši izmantota informātikā un elektronikas nozarē.