Šešioliktainė (hex) skaičių sistema — apibrėžimas ir pavyzdžiai
Sužinokite apie šešioliktainę (hex) sistemą: konversijos, A–F reikšmės, bitų grupavimas į nibble/baitą, aiškūs pavyzdžiai ir praktinės užduotys programuotojams.
Šešioliktainė (hex) skaičių sistema — tai skaičių sistema, kurioje vietoje dešimties simbolių naudojama 16 skirtingų reikšmių (t. y. skaičių sistema, sudaryta iš 16 simbolių (bazė 16)). Standartinė skaitmenų sistema dažniausiai vadinama dešimtaine (bazė 10) ir joje naudojami simboliai 0–9. Šešioliktainėje sistemoje papildomai naudojamos raidės iš anglų kalbos abėcėlės, būtent A, B, C, D, E ir F, kurios atitinka dešimtines reikšmes nuo 10 iki 15 (A = 10, F = 15).
Pagrindai ir kodavimo ryšys su dvejetainiu
Žmonės dažniausiai naudoja dešimtainę sistemą (tikriausiai dėl dešimties pirštų), tačiau kompiuteriai dirba dvejetainiais signalais — bitais (0 arba 1). Dėl patogumo bitus dažnai grupuojama:
- Anksčiau populiaru grupuoti po 3 bitus — tai susiję su aštuonetu (octal) — 3 bitai gali reikšti 0–7.
- Šiuolaikinėje skaičiavimų technikoje patogiau grupuoti po 4 bitus: 4 bitai suteikia 16 galimų reikšmių, todėl vienas 4 bitų fragmentas atitinka vieną šešioliktainį skaitmenį. Tokia 4 bitų grupė kompiuterių žargone vadinama nibble (kartais rašoma nybble).
- Du nibble sudaro baitą (8 bitus), o baitas yra dažniausiai naudojamas vienetas daugumoje kompiuterinių operacijų (8, 16, 32, 64 bitų žodžiai ir t. t.).
Dėl šios atitikties šešioliktainiai skaičiai ypač palengvina ilgesnių dvejetainių eilučių skaitymą ir rašymą.
Skaitmenų atvaizdavimas (lentelė)
- 0 = 0 (d) = 0000 (b)
- 1 = 1 (d) = 0001 (b)
- 2 = 2 (d) = 0010 (b)
- 3 = 3 (d) = 0011 (b)
- 4 = 4 (d) = 0100 (b)
- 5 = 5 (d) = 0101 (b)
- 6 = 6 (d) = 0110 (b)
- 7 = 7 (d) = 0111 (b)
- 8 = 8 (d) = 1000 (b)
- 9 = 9 (d) = 1001 (b)
- A = 10 (d) = 1010 (b)
- B = 11 (d) = 1011 (b)
- C = 12 (d) = 1100 (b)
- D = 13 (d) = 1101 (b)
- E = 14 (d) = 1110 (b)
- F = 15 (d) = 1111 (b)
Žymėjimas
Norint aiškiai nurodyti, kad skaičius yra šešioliktainis, paprastai naudojami šie žymėjimai:
- Prieš skaičių dedamas 0x: pavyzdžiui, 0x63.
- Priešdėlis h po skaičiaus: pavyzdžiui, 63h. (Kai kuriuose asembleriuose šešioliktainis, prasidedantis raide, reikalauja pridedamo nulio: pvz., 0Ah vietoje Ah.)
- Spalvų žymėjimui CSS dažnai naudojamas #, pvz., #FF00FF reiškia magentą.
Raidės A–F paprastai yra didžiosios arba mažosios — skaičius nekeičiantis reikšmės (case-insensitive): 0xA1 = 0xa1.
Konvertavimas — keli pavyzdžiai
1) Iš šešioliktainio į dešimtainį (pvz., 3A7):
3A7₁₆ = 3·16² + A·16¹ + 7·16⁰ = 3·256 + 10·16 + 7 = 768 + 160 + 7 = 935₁₀.
2) Iš dvejetainio į šešioliktainį (pvz., 11011011):
Padalinti bitų eilutę į grupes po 4 iš dešinės: 1101 1011 → D B → 0xDB.
3) Iš dešimtainio į šešioliktainį (pvz., 2024):
Dalijame iš 16 ir surenkame liekanas:
- 2024 / 16 = 126, liekana 8 → paskutinis skaitmuo 8
- 126 / 16 = 7, liekana 14 → E
- 7 / 16 = 0, liekana 7 → 7
Rezultatas: 0x7E8.
4) Šešioliktainiai trupmenys: pavyzdžiui, 0xA.F = 10 + 15/16 = 10.9375 (dešimtainiu).
Praktinis naudojimas ir pastabos
- Šešioliktainiai skaičiai plačiai naudojami atminties adresams, mašininiam kodui, heksadesimaliems keitikliams, spalvų kodams (#RRGGBB) ir duomenų atvaizdavimui vietoje ilgo dvejetainio teksto.
- Bitų modelių interpretacija: šešioliktainis skaičius tiesiogiai atspindi dvejetainę bitų seką, todėl jis yra patogus priemonė analizuojant žemo lygio bitų išsidėstymą (pvz., bitų kaukes, flags).
- Neigiamų skaičių atvaizdavimas dažnai vyksta naudojant dvejetainės komplemento (two's complement) formatą. Pavyzdžiui, baitas 0xFF reiškia 255 dešimtainiu arba −1, jei tai yra 8 bitų two's complement reikšmė.
- Praktiniai patarimai: dažnai rašant šešioliktainius naudinga skaičius suskirstyti po dvi ar keturias vietas (pvz., 0xDE AD BE EF), kad būtų lengviau skaityti; atkreipkite dėmesį į reikalavimus konkrečioje kalboje ar assembleryje dėl žymėjimo (0x, h, # ir t. t.).
Šešioliktainė sistema yra paprasta, aiški ir ypač tinkama darbui su bitais bei baitais — todėl ji išliko pagrindine priemone programų kūrėjams, inžinieriams ir tinklo specialistams.
Šešiaženklės reikšmės
Šešiaženklė sistema yra panaši į aštuntainę skaičių sistemą (pagrindas 8), nes kiekvieną iš jų galima lengvai palyginti su dvejetaine skaičių sistema. Šešiaženklėje sistemoje naudojamas keturių bitų dvejetainis kodavimas. Tai reiškia, kad kiekvienas šešioliktainės sistemos skaitmuo yra toks pat kaip keturi dvejetainės sistemos skaitmenys. Aštuonetainėje sistemoje naudojama trijų bitų dvejetainė sistema.
Dešimtainėje sistemoje pirmas skaitmuo yra vienetas, kitas skaitmuo į kairę - dešimtukas, kitas - šimtukas ir t. t. Šešioliktainėje sistemoje kiekvienas skaitmuo gali turėti 16 reikšmių, o ne 10. Tai reiškia, kad skaitmenys turi vieneto vietą, šešiolikos vietą, o kitas yra 256 vieta. Taigi 1h = 1 dešimtainė, 10h = 16 dešimtainė, o 100h = 256 dešimtainė.
Šešiaženklių skaičių verčių, paverstų dvejetainiais, aštuntainiais ir dešimtainiais skaičiais, pavyzdžiai.
|
Konversija
Dvejetainis į šešioliktainį
Keičiant skaičių iš dvejetainio į šešiaženklį naudojamas grupavimo metodas. Dvejetainis skaičius suskirstomas į keturių skaitmenų grupes, pradedant iš dešinės. Tada šios grupės konvertuojamos į šešioliktainius skaitmenis, kaip parodyta pirmiau pateiktoje schemoje šešioliktainiams skaičiams nuo 0 iki F. Norint pakeisti šešioliktainius skaičius iš šešioliktainių, daroma atvirkščiai. Šešiaženkliai skaitmenys keičiami į dvejetainius, o grupavimas paprastai panaikinamas.
| Dvejetainis | Grupės | Šešiaženklis | |||
| 01100101 | 0110 | 0101 | 65 | ||
| 010010110110 | 0100 | 1011 | 0110 | 4B6 | |
| 1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Kai dvejetainio skaičiaus bitų skaičius nėra 4 kartotinis, jis papildomas nuliais, kad būtų toks. Pavyzdžiai:
- dvejetainis 110 = 0110, t. y. 6 šešiaženkliai simboliai.
- dvejetainis 010010 = 00010010, t. y. 12 šešiaženklių.
Šešiaženklis į dešimtainis
Skaičius iš šešioliktainės į dešimtainę sistemą galima konvertuoti dviem būdais.
Pirmasis būdas dažniau taikomas konvertuojant rankiniu būdu:
- Kiekvienam šešioliktainiui skaitmeniui naudokite dešimtainę vertę. 0-9 yra tas pats, bet A = 10, B = 11, C = 12, D = 13, E = 14 ir F = 15.
- Toliau išsaugokite kiekviename žingsnyje konvertuotų skaičių sumą.
- Pradėkite nuo mažiausiai reikšmingo šešioliktainio skaitmens. Tai dešinėje pusėje esantis skaitmuo. Tai bus pirmasis sumos elementas.
- Paimkite antrą mažiausią reikšminį skaitmenį. Jis yra šalia dešinėje pusėje esančio skaitmens. Dešimtainę skaitmens vertę padauginkite iš 16. Tai pridėkite prie sumos.
- Tą patį padarykite ir su trečiuoju mažiausiu skaitmeniu, bet padauginkite jį iš 162 (t. y. 16 kvadratu arba 256). Pridėkite jį prie sumos.
- Tęskite kiekvieno skaitmens dauginimą iš kitos 16 galios. (4096, 65536 ir t. t.)
|
| Vieta | |||||
| 6 | 5 | 4 | 3 | 2 | 1 | |
| Vertė | 1048576 (165) | 65536 (164) | 4096 (163) | 256 (162) | 16(161) | 1 (160) |
Kitas metodas dažniau taikomas konvertuojant skaičių programine įranga. Prieš pradedant jį taikyti, nereikia žinoti, kiek skaitmenų turi skaičius, ir jis niekada nepadaugina iš daugiau nei 16, tačiau popieriuje jis atrodo ilgesnis.
- Kiekvienam šešioliktainiui skaitmeniui naudokite dešimtainę vertę. 0-9 yra tas pats, bet A = 10, B = 11, C = 12, D = 13, E = 14 ir F = 15.
- Toliau išsaugokite kiekviename žingsnyje konvertuotų skaičių sumą.
- Pradėkite nuo reikšmingiausio skaitmens (skaitmuo kairėje pusėje). Tai pirmasis sumos elementas.
- Jei yra kitas skaitmuo, padauginkite sumą iš 16 ir pridėkite kito skaitmens dešimtainę vertę.
- Kartokite šį veiksmą, kol neliks daugiau skaitmenų.
Pavyzdys: 5Fh ir 3425h į dešimtainį skaičių, 1 metodas
|
|
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
Pavyzdys: 5Fh ir 3425h į dešimtainį skaičių, 2 metodas
|
|
|
|
| |||||||||||||||||||||||||||||||||||||||||
Susiję puslapiai
- Dvejetainė skaičių sistema
- Aštuonženklė skaičių sistema
- Dešimtainių skaitmenų sistema
Klausimai ir atsakymai
K: Kas yra šešioliktainė skaičių sistema?
A: Šešioliktainė skaičių sistema yra 16 pagrindo skaičių sistema, sudaryta iš 16 simbolių.
K: Kokie yra dešimt simbolių, naudojamų dešimtainėje (10 pagrindo) sistemoje?
A: Dešimtainėje (10 pagrindo) sistemoje naudojami šie dešimt simbolių: 0,1,2,3,4,5,6,7,8 ir 9.
K: Kokie šeši papildomi simboliai naudojami šešioliktainėje skaičiavimo sistemoje?
A: Šešiaženklėje skaičiavimo sistemoje naudojamos raidės iš anglų kalbos abėcėlės: A, B, C, D, E ir F.
K: Kiek bitų turi vienas baitas šiuolaikiniuose kompiuteriuose?
A: Šiuolaikiniuose kompiuteriuose kiekviename baite paprastai yra aštuoni bitai.
K: Ką inžinieriai ir kompiuterių mokslininkai vadina keturių bitų vertėmis?
A: Inžinieriai ir kompiuterių mokslininkai keturių bitų vertes vadina nibble (kartais rašoma nybble).
K: Kaip rašant šešioliktainius skaičius išvengti painiavos su kitomis skaičiavimo sistemomis?
A: Norėdami išvengti painiavos su kitomis numeracijos sistemomis, rašydami šešioliktainius skaičius, galite po skaičiaus pridėti raidę "h" arba "0x" prieš skaičių. Pavyzdžiui, 63h arba 0x63 reiškia 63 šešioliktainių skaičių.
Ieškoti