Š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.

Autorius: Leandro Alegsa

Š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.

Šešiaženklis

Dvejetainis

Aštuoniasdešimtainis

Dešimtainis

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

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:

  1. 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.
  2. Toliau išsaugokite kiekviename žingsnyje konvertuotų skaičių sumą.
  3. Pradėkite nuo mažiausiai reikšmingo šešioliktainio skaitmens. Tai dešinėje pusėje esantis skaitmuo. Tai bus pirmasis sumos elementas.
  4. 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.
  5. 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.
  6. 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.

  1. 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.
  2. Toliau išsaugokite kiekviename žingsnyje konvertuotų skaičių sumą.
  3. Pradėkite nuo reikšmingiausio skaitmens (skaitmuo kairėje pusėje). Tai pirmasis sumos elementas.
  4. Jei yra kitas skaitmuo, padauginkite sumą iš 16 ir pridėkite kito skaitmens dešimtainę vertę.
  5. Kartokite šį veiksmą, kol neliks daugiau skaitmenų.


Pavyzdys: 5Fh ir 3425h į dešimtainį skaičių, 1 metodas

 

5Fh į dešimtainį skaičių

Šešiaženklis

Dešimtainis

5Fh

=

( 5 x 16 )

+

( 15 x 1 )

=

80

+

15

5Fh

=

95

 

3425h į dešimtainį skaičių

Šešiaženklis

Dešimtainis

3425h

=

( 3 x 4096 )

+

( 4 x 256 )

+

( 2 x 16)

+

( 5 x 1 )

=

12288

+

1024

+

32

+

3425h

=

13349

Pavyzdys: 5Fh ir 3425h į dešimtainį skaičių, 2 metodas

 

5Fh į dešimtainį skaičių

Šešiaženklis

Dešimtainis

suma

=

5

=

(5 x 16) + 15

suma

=

80 + 15 (ne daugiau skaitmenų)

5Fh

=

95

 

3425h į dešimtainį skaičių

Šešiaženklis

Dešimtainis

suma

=

3

=

(3 x 16) + 4 = 52

suma

=

(52 x 16) + 2 = 834

suma

=

(834 x 16) + 5 = 13349

3425h

=

13349

Susiję puslapiai

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
AlegsaOnline.com - 2020 / 2025 - License CC3