Heksadesimaali (16-järjestelmä): määritelmä, käyttö ja muunnokset

Heksadesimaali (16-järjestelmä) selitetty selkeästi: mitä se on, miksi käytetään tietokoneissa ja miten muunnokset desimaaliin ja binääriin tehdään.

Tekijä: Leandro Alegsa

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.

Historia

Toisin kuin nykyaikaisissa tietokoneissa, monissa varhaisissa tietokoneissa oli kuusibittisiä tavuja. Näiden järjestelmien ohjelmoijat käyttivät tyypillisesti vaihtoehtoista bittiryhmittelyä, jota kutsutaan oktaaliksi. Kukin oktaaliluku edustaa tehokkaasti kolmea bittiä, ja kuusibittinen tavu voidaan esittää kahtena oktaalilukuna. Kolme bittiä, joista kukin on päällä tai pois päältä, voi edustaa kahdeksaa numeroa 0-7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 ja 111 = 7.


 

Heksadesimaaliarvot

Heksadesimaalijärjestelmä on samanlainen kuin oktaalilukujärjestelmä (emäs 8), koska molempia voidaan helposti verrata binäärilukujärjestelmään. Heksadesimaalijärjestelmässä käytetään nelibittistä binäärikoodausta. Tämä tarkoittaa, että jokainen numero heksadesimaaliluvussa on sama kuin neljä numeroa binääriluvussa. Kahdeksasluku käyttää kolmen bitin binäärijärjestelmää.

Desimaalijärjestelmässä ensimmäinen numero on ykkösen paikka, seuraava numero vasemmalla on kympin paikka, seuraava on sadan paikka jne. Heksadesimaalijärjestelmässä jokainen numero voi olla 16 arvoa, ei 10. Tämä tarkoittaa, että numerot ovat ykkösen paikka, kuudentoista paikka ja seuraava on 256:n paikka. Eli 1h = 1 desimaaliluku, 10h = 16 desimaalilukua ja 100h = 256 desimaalilukua.

Esimerkkiarvot heksadesimaaliluvuista muunnettuna binääri-, oktaali- ja desimaaliluvuiksi.

Hex

Binäärinen

Octal

Desimaaliluku

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


 

Muunnos

Binääriin heksadesimaaliksi

Luvun muuttaminen binääristä heksaksi käyttää ryhmittelymenetelmää. Binääriluku jaetaan neljän numeron ryhmiin oikealta alkaen. Nämä ryhmät muunnetaan sitten heksadesimaaliluvuiksi, kuten edellä olevassa taulukossa on esitetty heksadesimaaliluvuille 0-F. Muuttaminen heksadesimaaliluvusta tehdään päinvastoin. Heksadesimaaliluvut muutetaan binääriluvuiksi ja ryhmittely yleensä poistetaan.

Binäärinen

Ryhmittelyt

Hex

01100101

0110

0101

65

010010110110

0100

1011

0110

4B6

1101011101011010

1101

0111

0101

1010

D75A

Kun binääriluvun bittien määrä ei ole 4:n kerrannainen, se täydennetään nollilla, jotta se olisi 4:n kerrannainen. Esimerkkejä:

  • binääri 110 = 0110, joka on 6 Hex.
  • binääri 010010 = 00010010, joka on 12 Hex.

Heksadesimaalinen to desimaalinen

Numeron muuntaminen heksadesimaalista desimaaliseksi voidaan tehdä kahdella yleisellä tavalla.

Ensimmäinen menetelmä on yleisempi, kun se muunnetaan manuaalisesti:

  1. Käytä kunkin heksadesimaaliluvun desimaaliarvoa. Numerot 0-9 ovat samat, mutta A = 10, B = 11, C = 12, D = 13, E = 14 ja F = 15.
  2. Pidä alla summa kussakin vaiheessa muunnetuista luvuista.
  3. Aloita vähiten merkitsevästä heksadesimaaliluvusta. Se on oikeassa päässä oleva numero. Tämä on summan ensimmäinen kohta.
  4. Ota toiseksi vähiten merkitsevä numero. Se on oikeanpuoleisen numeron vieressä. Kerro numeron desimaaliarvo luvulla 16. Lisää tämä summaan.
  5. Tee sama kolmanneksi vähiten merkitsevälle numerolle, mutta kerro se 16:lla2 (eli 16 neliössä eli 256:lla). Lisää se summaan.
  6. Jatka jokaisen numeron kohdalla kertomalla joka paikka toisella 16:n potenssilla (4096, 65536 jne.).

 

Sijainti

6

5

4

3

2

1

Arvo

1048576 (16 )5

65536 (16 )4

4096 (16 )3

256 (16 )2

16(16 )1

1 (16 )0


 Seuraava menetelmä on yleisempi, kun numeroa muunnetaan ohjelmistossa. Sen ei tarvitse tietää, kuinka monta numeroa luvussa on, ennen kuin se alkaa, eikä se koskaan kerro yli 16:lla, mutta se näyttää paperilla pidemmältä.

  1. Käytä kunkin heksadesimaaliluvun desimaaliarvoa. Numerot 0-9 ovat samat, mutta A = 10, B = 11, C = 12, D = 13, E = 14 ja F = 15.
  2. Pidä alla summa kussakin vaiheessa muunnetuista luvuista.
  3. Aloita merkitsevimmästä numerosta (äärimmäisenä vasemmalla oleva numero). Tämä on summan ensimmäinen kohta.
  4. Jos on olemassa toinen numero, kerro summa 16:lla ja lisää seuraavan numeron desimaaliarvo.
  5. Toista edellä mainittu vaihe, kunnes numeroita ei ole enää jäljellä.


Esimerkki: Menetelmä 1: 5Fh ja 3425h desimaalilukuna.

 

5Fh desimaalilukuun

Hex

Desimaaliluku

5Fh

=

( 5 x 16 )

+

( 15 x 1 )

=

80

+

15

5Fh

=

95

 

3425h desimaalilukuun

Hex

Desimaaliluku

3425h

=

( 3 x 4096 )

+

( 4 x 256 )

+

( 2 x 16)

+

( 5 x 1 )

=

12288

+

1024

+

32

+

5

3425h

=

13349

Esimerkki: Menetelmä 2: 5Fh ja 3425h desimaalilukuna.

 

5Fh desimaalilukuun

Hex

Desimaaliluku

sum

=

5

=

(5 x 16) + 15

sum

=

80 + 15 (ei enempää numeroita)

5Fh

=

95

 

3425h desimaalilukuun

Hex

Desimaaliluku

sum

=

3

=

(3 x 16) + 4 = 52

sum

=

(52 x 16) + 2 = 834

sum

=

(834 x 16) + 5 = 13349

3425h

=

13349


 

Aiheeseen liittyvät sivut

 

Kysymyksiä ja vastauksia

K: Mikä on heksadesimaalilukujärjestelmä?


V: Heksadesimaalilukujärjestelmä on 16 symbolista koostuva 16-alkuinen numerointijärjestelmä.

K: Mitkä kymmenen symbolia käytetään desimaalijärjestelmässä (perusta 10)?


V: Kymmenen desimaalijärjestelmässä (emäksessä 10) käytettyä symbolia ovat 0,1,2,3,4,5,6,7,8 ja 9.

K: Mitä kuutta ylimääräistä symbolia heksadesimaalijärjestelmä käyttää?


V: Heksadesimaalijärjestelmässä käytetään englantilaisista aakkosista poimittuja kirjaimia: A, B, C, D, E ja F.

K: Kuinka monta bittiä yksi tavu sisältää nykyaikaisissa tietokoneissa?


V: Nykyaikaisissa tietokoneissa jokainen tavu sisältää yleensä kahdeksan bittiä.

K: Mitä insinöörit ja tietojenkäsittelytieteilijät kutsuvat nelibittisiksi arvoiksi?


V: Insinöörit ja tietojenkäsittelytieteilijät kutsuvat nelibittisiä arvoja nimellä nibbles (joskus myös nybble).

K: Miten voit välttää sekaannukset muihin numerojärjestelmiin, kun kirjoitat heksadesimaalilukuja?


V: Voit välttää sekaannukset muiden numerointijärjestelmien kanssa, kun kirjoitat heksadesimaalilukuja, lisäämällä "h" numeron perään tai "0x" numeron eteen. Esimerkiksi 63h tai 0x63 tarkoittaa 63 heksadesimaalilukua.


Etsiä
AlegsaOnline.com - 2020 / 2025 - License CC3