Heksaarvud (16-põhine süsteem): definitsioon ja kasutus arvutites
Õpi heksaarvud (baas 16): definitsioon, teisendused, binaar- ja baitistruktuur ning praktiline kasutus arvutites ja programmeerimises.
Heksaarvusüsteem (tuntud ka inglise keeles kui hexadecimal või lühidalt hex) on 16 sümbolist koosnev numbrisüsteem (baas 16). Standardset numbrisüsteemi nimetatakse kümnendsüsteemiks (baas 10), kus kasutatakse sümboleid 0–9. Heksaarvusüsteemis kasutatakse kümnendsüsteemi numbreid 0–9 ning kuut lisasümbolit A, B, C, D, E ja F, mis tähistavad väärtusi 10–15 vastavalt (A = 10, F = 15). Kokkuvõttes võimaldavad 16 sümbolit esindada väärtusi 0 kuni 15 ühe koha kohta.
Miks arvutimaailmas kasutatakse heksaararve?
Inimesed kasutavad igapäevaselt kümnendsüsteemi — see on intuitiivne, tõenäoliselt seoses kümne sõrmega. Arvutid töötavad aga binaarkujul (süsteem 2), kus iga alus on kas sisse või välja (0 või 1). Binaararve on seega nullide ja üksuste jada, näiteks 11011011. Pikaid binaare esitada otse on ebamugav, seetõttu rühmitatakse bitte.
Varasemalt rühmitati bitte sageli kolmeks (selle tulemusena tekkis kaheksakohaline ehk oktal süsteem), sest 3 bitti annab 8 võimalikku kombinatsiooni (0–7). Hiljem osutus mugavamaks rühmitada 4 bitti korraga — 4 bitti annab 16 kombinatsiooni, mis viib heksaararvudeni. Neli bitti moodustavad arvutijargoonis nibble'i (mõnikord kirjutatakse nybble) ja üks nibble vastab ühele heksaarkohale. Kaks nibble'i moodustavad baidi (8 bitti), mida kasutatakse paljudes arvutioperatsioonides. Heksaararvud muudavad suured binaarsed numbrid lühemaks ja loetavamaks.
Kirjutusviisid ja tähistused
Heksaariivide eristamiseks teiste süsteemide arvudest kasutatakse mitmeid konventsioone:
- eelistatud C-keele ja paljude programmeerimiskeelte süntaks: 0x eesliide (näide: 0x63);
- mõnes assembleris ja dokumentatsioonis kasutatakse järelhäälikut h (näide: 63h);
- veebi- ja CSS-värvikoodides kasutatakse risti või märki # (näide: #FF0000 punase jaoks), kus RRGGBB on kolme värikanali heksaararvud.
Kuidas teisendada heksaararv kümnend- ja binaarsüsteemi — näited
Heksaararvu teisendamisel kümnendiks korrutatakse iga koht vastava positsiooni baasvõimuga (16^0, 16^1, 16^2 ...). Näide:
0x3E7 = 3×16^2 + E×16^1 + 7×16^0 = 3×256 + 14×16 + 7 = 768 + 224 + 7 = 999 (kümnendsüsteemis).
Binaari teisendamiseks saab iga heksakohale vastava 4 bitti eraldi kirjutada:
- 0x63 → 6 = 0110 ja 3 = 0011 → binaaris 0110 0011 (mis on 99 kümnendsüsteemis);
- 0xFF → FF = 1111 1111 (kümnendsüsteemis 255, 8-bitise maksimaalse väärtuse näide).
Kus heksaararve kasutatakse?
Heksaararvud on laialt kasutusel arvutite ja elektroonika valdkonnas, näiteks:
- mälu‑ ja aadressimise kuvamine (mälu aadressid tavaliselt heksakujul);
- värvikoodid veebidisainis (CSS: #RRGGBB);
- MAC-aadressid ja paljud võrguprotokollid (paarides olevad heksapaarid);
- madala taseme programmeerimine ja debuggimine (näiteks tähistused registriväärtuste ja maskide puhul);
- failiformaadid ja binaarandmete esitus lugemisväärsel kujul.
Nõuanded ja kokkuvõte
Heksaar on mugav viis esitada binaarset informatsiooni lühemalt ja loetavamalt — 4 bitti → 1 hex. Kui õpite heksaariga töötama, harjuge:
- mäletama A–F vastavaid väärtusi 10–15;
- teadma peamisi notatsioone (0x, h, #) ja konteksti, kus neid kasutatakse;
- õppima lihtsaid teisenduse reegleid (4-bitiline rühm binaarist → üks hex; positsioonikorrutused kümnendiks).
Heksaarvud
Heksaarvud on sarnased kaheksakohalise numbrisüsteemiga (baas 8), sest mõlemat saab kergesti võrrelda binaarse numbrisüsteemiga. Heksaadarvudes kasutatakse neljabittilist binaarkoodimist. See tähendab, et iga number heksadekaalarvus on sama, mis neli numbrit binaarsüsteemis. Oktaalarv kasutab kolmebittilist binaarsüsteemi.
Kümnendsüsteemis on esimene number ühe koht, järgmine number vasakul on kümne koht, järgmine on saja koht jne. Heksaadiksüsteemis võib iga number olla 16 väärtust, mitte 10. See tähendab, et numbritel on ühe koht, kuueteistkümne koht ja järgmine on 256 koht. Seega 1h = 1 kümnendkoht, 10h = 16 kümnendkoht ja 100h = 256 kümnendkoht.
Kuueteistkümnendarvude näidisväärtused teisendatuna binaarseks, kaheksakohaliseks ja kümnendarvuks.
|
Conversion
Binaarsed to heksadekaalarvud
Numbri muutmine binaarsest arvust heksakoodiks kasutab rühmitamismeetodit. Binaarne number jagatakse neljast numbrist koosnevateks rühmadeks, alustades paremalt. Seejärel teisendatakse need rühmad heksadekaalarvudeks, nagu on näidatud ülaltoodud tabelis heksadekaalarvude 0 kuni F puhul. Kõik heksakohad muudetakse binaarseks ja rühmitus tavaliselt eemaldatakse.
Binaarne | Grupeeringud | Hex | |||
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Kui bittide arv on binaarvõrrandis, mis ei ole 4 kordne, siis täidetakse see nullidega, et see oleks selline. Näited:
- binaarne 110 = 0110, mis on 6 Hex.
- binaarne 010010 = 00010010, mis on 12 Hex.
Heksaarv kümnendsüsteemi muutmine kümnendsüsteemi
Arvude konverteerimiseks heksadekaalarvust kümnendarvuks on kaks levinud viisi.
Esimest meetodit tehakse sagedamini käsitsi teisendamisel:
- Kasutage iga kuuekohalise numbri jaoks kümnendväärtust. 0-9 puhul on see sama, kuid A = 10, B = 11, C = 12, D = 13, E = 14 ja F = 15.
- Hoidke alljärgnevalt igal sammul ümberarvestatud numbrite summa.
- Alustage kõige vähemtähtsama kuueteistkümnendikuga. See on number paremas otsas. See on summa esimene element.
- Võtke eelviimane oluline number. See on parempoolse numbri kõrval. Korrutage selle numbri kümnendväärtus 16-ga. Lisage see summa juurde.
- Tehke sama ka kolmandaks vähim olulise numbriga, kuid korrutage see 162-ga (st 16 ruutu ehk 256). Lisage see summale.
- Jätkake iga numbri puhul, korrutades iga koha teise 16-ga. (4096, 65536 jne.)
| Asukoht | |||||
6 | 5 | 4 | 3 | 2 | 1 | |
Väärtus | 1048576 (165) | 65536 (164) | 4096 (163) | 256 (162) | 16(161) | 1 (160) |
Järgmist meetodit kasutatakse sagedamini numbri teisendamisel tarkvaras. See ei pea teadma, mitu numbrit arvul on, enne kui ta alustab, ja ta ei korruta kunagi rohkem kui 16-ga, kuid paberil näeb see pikem välja.
- Kasutage iga kuuekohalise numbri jaoks kümnendväärtust. 0-9 puhul on see sama, kuid A = 10, B = 11, C = 12, D = 13, E = 14 ja F = 15.
- Hoidke alljärgnevalt igal sammul ümberarvestatud numbrite summa.
- Alustage kõige olulisemast numbrist (kõige vasakpoolsemast numbrist). See on summa esimene kirje.
- Kui on veel üks number, korrutage summa 16-ga ja lisage järgmise numbri kümnendväärtus.
- Korrake ülaltoodud sammu, kuni numbreid enam ei ole.
Näide: 5Fh ja 3425h kümnendsüsteemi, meetod 1
|
|
|
|
Näide: 5Fh ja 3425h kümnendsüsteemi, meetod 2
|
|
|
|
Seotud leheküljed
- Binaarne numbrite süsteem
- Oktalnumbri süsteem
- Kümnendsüsteem
Küsimused ja vastused
K: Mis on kuuekohaline numbrisüsteem?
V: Heksaadiksüsteem on 16 sümbolist koosnev 16 baasil põhinev numeratsioonisüsteem.
K: Milliseid kümme sümbolit kasutatakse kümnendsüsteemis (baas 10)?
V: Kümme sümbolit, mida kasutatakse kümnendsüsteemis (baas 10), on 0,1,2,3,4,5,6,7,8 ja 9.
K: Milliseid kuut lisasümbolit kasutab heksadekaalsüsteem?
V: Heksaadiksüsteemis kasutatakse inglise tähestikust võetud tähti - A, B, C, D, E ja F.
K: Mitu bitti sisaldab üks bait tänapäeva arvutites?
V: Tänapäeva arvutites sisaldab iga bait tavaliselt kaheksa bitti.
K: Mida nimetavad insenerid ja arvutiteadlased nelja biti väärtusteks?
V: Insenerid ja arvutiteadlased nimetavad neljabitilisi väärtusi nibliteks (mõnikord kirjutatakse ka nybble).
K: Kuidas vältida segadust teiste numbrisüsteemidega, kui kirjutatakse kuuekohalisi numbreid?
V: Et vältida segadust teiste numeratsioonisüsteemidega, võite kuuekohaliste arvude kirjutamisel lisada numbrile "h" järele või "0x" ette. Näiteks 63h või 0x63 tähendab 63 heksadekaalarvu.