Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Heksadesimaaliluvuista


Jokapäiväisessä elämässä käytetään lukujen esittämisessä yleensä kymmenjärjestelmää. Kantalukuna käytetään kymmentä luultavasti siksi, että ihmisellä on kymmenjärjestelmään sopiva määrä sormia. Kymmenjärjestelmään tarvitaan kymmenen numeromerkkiä,  käytännössä siis 0..9. Kantaluku ja sitä suuremmat luvut esitetään kantaluvun potenssien kertoimina:

1234 = 1*10 3 + 2 ⋅ 10 2 + 3 ⋅ 10 1 + 4 ⋅ 10 0

Väylätekniikoiden yhteydessä, kuten digitaalitekniikassa yleensäkin, käytetään kymmenjärjestelmän sijaan usein binaari- tai heksadesimaalijärjestelmää. Binaarijärjestelmän kantaluku on kaksi. Se on luonteva valinta digitaalitekniikkaan, joka perustuu Boolen algebraan (arvot tosi ja epätosi). Ihmiselle binaarilukujen lukeminen ja kirjoittaminen on hankalaa, sillä ne ovat usein pitkiä ykkös-nolla -jonoja. Kätevä vaihtoehto ovat lukujärjestelmät, joiden kantaluku on kakkosen jokin potenssi. Tällöin jokainen merkki vastaa tiettyä bittikuviota. Käytetyin näistä on heksadesimaalijärjestelmä (kantaluku kuusitoista), jolloin jokainen numeromerkki vastaa neljän bitin jonoa:

1234 16 = 1 ⋅ 16 3 + 2 ⋅ 16 2 + 3 ⋅ 16 1 + 4 ⋅ 16 0 = 0001001000110100 2 = 4660

1 16 = 0001 2
2 16 = 0010 2
3 16 = 0011 2
4 16 = 0100 2
Samannäköinen merkintä voi siis tarkoittaa eri lukua eri lukujärjestelmissä. Matematiikassa lukujärjestelmän kantaluku merkitään sekaannusten välttämiseksi alaindeksiin (kymmenjärjestelmän lukuna). Ilman alaindeksiä olevat luvut oletetaan kymmenjärjestelmän luvuiksi. Digitaalitekniikassa heksadesimaalilukujen eteen merkitään yleensä 0x. Tätä merkintätapaa käytetään myös tässä tekstissä. Joskus luvun edellä käytetään merkkiä $ tai luvun perässä kirjainta h. Myös näiden yhdistelmiä näkee.

12 16 = 0x12 = 0x12h = $12 = $12h = 18

Koska heksadesimaalijärjestelmään tarvitaan kuusitoista numeromerkkiä, otetaan avuksi kirjaimet A..F, jotka vastaavat kymmenjärjestelmän lukuja 10..15. Muunnoksia lukujärjestelmien välillä voi tehdä vaikkapa Windowsin laskimella. Pienet luvut on hyvä osata muuntaa myös päässä, sillä se on usein nopeinta. Esim. 1. Muunna 0x2B kymmenjärjestelmän luvuksi.

2 ⋅ 16 + 11 = 32 + 11 = 43

Esim. 2. Muunna 45 heksadesimaaliluvuksi.
 45/16
      = 2 , jää 13 ( = 0xD )
 
 45 = 0 x2 D

Heksadesimaalilukujen yhteenlaskussa täytyy muistaa, että yhdellä merkillä esitetään
luvut 0..15. Muistinumeroa tarvitaan siis vasta, kun 16 tulee täyteen:
                                 1
  0x600           0x105       0x19A
+0x A            +0x206      +0x108

-------------------------------------------------

  0x60A           0x30B       0x1A2
 


Muunnokset lukujärjestelmästä toiseen

...

1204 = 1024 + 128 + 32 + 16 + 4
     = 1*1024   + 0     + 0     + 128   + 0     + 32    + 16    + 0     + 4     + 0     + 00*512     + 0*256     + 1*128   + 0*64     + 1*32    + 1*16    + 0*8     + 1*4     + 0*2     + 0*1
     = 1*2^10 + 0*2^9 + 0*2^8 + 1*2^7 + 0*2^6 + 1*2^5 + 1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 0*2^0
     = 1        0       0       1       0       1       1       0       1       0       0 (bin)
     = 10010110100 (bin)

...