Heksadesimaalilukujärjestelmä (lyhennetty usein heksaksi) on kanta 16 -järjestelmä eli lukujärjestelmä, jossa käytetään 16 erilaista symbolia. Tavallisessa desimaalijärjestelmässä (kanta 10) symbolit ovat 0–9. Heksadesimaalijärjestelmässä käytetään samoja desimaalinumeroita 0–9 sekä kuutta kirjaimella merkittyä lisäsymbolia: A, B, C, D, E, F. Nämä vastaavat desimaalilukuja 10–15 (esim. heksa A = desimaalissa 10 ja heksa F = 15).

Miksi heksaa käytetään?

Ihmiset käyttävät arkielämässä pääasiallisesti desimaalia (kanta 10), todennäköisesti siksi, että ihmisellä on kymmenen sormea. Tietokoneet sen sijaan käsittelevät tietoa binäärinä (kanta 2): jokainen bittiyksikkö voi olla 0 tai 1. Binääriesitykset voivat olla pitkiä ja vaikealukuista ihmiselle, joten heksadesimaali toimii kätevänä tiivistyksenä: yksi heksadesimaalimerkki vastaa täsmälleen neljää bittiä (yhtä "nibbleä").

Esimerkiksi desimaali 219 esitetään binäärinä 11011011 (8 bittiä). Tämän voi ryhmitellä neljän bitin paloihin: 1101 1011, jotka vastaavat heksamerkkejä D ja B. Siten binäärijono 11011011 on heksana 0xDB (tai joskus kirjoitettuna DBh).

Periaate ja paikkajärjestelmä

Heksadesimaali on paikkajärjestelmä: kunkin paikan arvo on 16 potenssiin n (16^0, 16^1, 16^2, ...). Esimerkiksi heksaluku 2F3 tarkoittaa

  • 2 × 16^2 (2 × 256 = 512)
  • + F × 16^1 (15 × 16 = 240)
  • + 3 × 16^0 (3 × 1 = 3)

Yhteensä 512 + 240 + 3 = 755 desimaalia.

Muunnostavat menetelmät

Heksa → desimaali: kerro jokaisen heksamerkin arvo kyseisen paikan 16^n:llä ja summaa. Esimerkki: 0xDB = D×16^1 + B×16^0 = 13×16 + 11 = 219.

Desimaali → heksa: jaa toistuvasti luvulla 16 ja ota jakojäännökset. Jakojäännökset (alas kirjoitettuna) muodostavat heksamerkit käänteisessä järjestyksessä. Esimerkiksi 219 ÷ 16 = 13 jäännös 11 → 11 = B; sitten 13 = D → DB.

Binääri ↔ heksa: jaa binääriluku neljän bitin ryhmiin oikealta (tarvittaessa lisää nollia eteen). Kukin 4-bittinen ryhmä vastaa yhtä heksamerkkiä. Esimerkiksi 11011011 → 1101 1011 → D B → 0xDB. Ja päinvastoin: käännä jokainen heksamerkki neljäksi bitiksi.

Merkintätavat ja konventiot

  • Yleisiä merkintätapoja: etuliite 0x (esim. 0x63), jälkiliite h (esim. 63h) tai dollarimerkki joissain kielissä (esim. $63). Heksamerkkien kirjoitus on yleensä kirjainkoon suhteen herkkä vain konventiolle — A–F ja a–f tarkoittavat samaa arvoa.
  • HTML/CSS-väreissä käytetään hex-muotoa muodossa #RRGGBB (esim. #FF00FF = magenta), jossa kukin komponentti on kahden heksamerkin arvo (00–FF = 0–255 desimaaleina).
  • Tietokoneohjelmoinnissa ja muistiosoitteissa heksaa käytetään usein, koska se kuvaa tavujärjestystä ja bittikenttiä selkeästi ja tiiviisti.

Käyttökohteita

  • Muistiosoitteet ja sisältö (heksadesimaali on kätevä tapa näyttää tavujen arvot).
  • Värikoodit web-suunnittelussa (esim. #00FF00 vihreä).
  • Low-level-työkalut kuten debuggerit, hex-editorit ja verkon pakettien analysointi.
  • ASCII- ja Unicode-koodiarvojen esitys (esim. merkki 'A' = 0x41).

Lisätietoja ja käytännön seikat

  • Yksi tavallinen tavu on kahdeksan bittiä eli kaksi heksamerkkiä (00–FF). Siksi muistin sisältöä on luontevaa esittää heksadesimaaleina.
  • Nibble (tai nybble) tarkoittaa neljän bitin ryhmää — yhtä heksamerkkiä.
  • Negatiivisten lukujen esityksessä tietokoneissa käytetään usein kaksikomplementtia; hex-esitys silloin kuvaa vain bittikuviota, ei suoraan negatiivisen desimaaliarvon “merkkiä”.
  • Kun työstät heksaa ohjelmissa, kiinnitä huomiota kirjainkokoon ja merkintätapaan (esim. 0x vs. h), sillä eri kielet ja työkalut odottavat eri syntakseja.

Säilytä tämä muistissa: heksadesimaali on kätevä, ymmärrettävä ja tiivis tapa esittää binääridataa ihmiselle luettavassa muodossa, ja se liittyy suorasti bittien ja tavujen rakenteeseen. Lisätietoa yleisistä lukujärjestelmistä löytyy myös osoitteesta tämä artikkeli.

Huom. Tämä teksti käyttää linkkejä alkuperäisestä lähteestä: 71430, 26162, 56220, 15749 ja 22317.