Heksadecimālā (16. bāze): definīcija, pārveidošana un piemēri
Izskaidro heksadecimālo (16. bāzi): definīcija, bināru–hex pārvēršana, soli-pa-solim piemēri un praktiskas konversijas programmēšanā un elektronikā.
Sešpadsmitnieku (heksadecimālā) skaitļu sistēma ir skaitļu sistēma, kurā izmanto 16 dažādus simbolus. skaitļu sistēma, ko veido 16 simboli (16 bāze). Parastā ikdienas skaitīšana notiek decimālajā (bāze 10) sistēmā), kur simboli ir 0–9. Heksadecimālajā sistēmā pie šiem desmit cipariem pievieno sešus papildu simbolus — burti A, B, C, D, E un F — lai apzīmētu vērtības no 10 līdz 15. Tātad heksadecimālais A atbilst decimālajam 10, bet F — decimālajam 15. Nosaukums "heksadecimālais" nāk no grieķu izcelsmes elementiem, kas kopā apzīmē skaitļu sistēmu ar bāzi 16.
Kāpēc heksadecimālā izmanto datorzinātnē
Cilvēki visbiežāk izmanto decimālskaitļu sistēmu — iespējams, tāpēc, ka mums ir desmit pirksti. Datori gan strādā ar bināriem signāliem — ieslēgts/izslēgts, kuri tiek attēloti kā bīti (0 vai 1). Binārais skaitlis ir nullīšu un vieninieku virkne, piemēram, 11011011. Lai padarītu garās binārās virknes saprotamākas cilvēkiem, tās parasti grupē pa vairākiem bitiņiem.
Agrāk bītus grupēja pa trim, veidojot astoņskaitli (katra trīsbitu grupa pārstāv skaitli 0–7). Mūsdienās ērtāk bītus grupēt pa četriem, jo četri biti var attēlot 16 dažādas vērtības (0–15). Šī saikne ar 16 padara heksadecimālo sistēmu ļoti ērti izmantojamu datortehnikā: viens heksadecimālais cipars atbilst tieši četriem bitiem.
Nibble, baits un heksadecimālais
Datoržargonā četrus bitus sauc par nibble (dažreiz raksta nybble). Viens nibble atbilst vienam heksadecimālajam ciparam (0–9 vai A–F). Divi nibble veido baitu (8 bitus). Tā kā daudzas datora operācijas un atmiņas adreses tiek mērītas baitos vai bajtu grupās (16, 24, 32, 64 bitu utt.), heksadecimālā pieraksta izmantošana ievērojami atvieglo liela binārskaitļa lasīšanu un rakstīšanu.
Heksadecimālā notācija
Lai skaidri norādītu, ka skaitlis ir heksadecimāls, izmanto vairākas notācijas. Biežākās ir "0x" prefikss (piem., 0x63) vai "h" sufikss (piem., 63h). Piemēram, 63h un 0x63 apzīmē skaitli, kas izteikts heksadecimālā sistēmā ar cipariem 6 un 3. Programmēšanā un dokumentācijā parasti izmantotais formāts ir 0x####, savukārt mikroprocesoru un montāžas valodā bieži redzēsiet sufiksu h.
Kā pārveidot starp sistēmām — soļi un piemēri
Heksadecimāls → decimāls (piemērs: 1A3₂₁₆): katru heksadecimālo ciparu reiziniet ar 16 pakāpi atbilstoši tā pozīcijai (no labās puses sākot ar 16⁰). Piemērs:
- 1A3₁₆ = 1×16² + A×16¹ + 3×16⁰ = 1×256 + 10×16 + 3×1 = 256 + 160 + 3 = 419₁₀.
- FF₁₆ = 15×16¹ + 15×16⁰ = 240 + 15 = 255₁₀.
Decimāls → heksadecimāls (piemērs: 419₁₀ → ?): daliet skaitli ar 16 un paņemiet atlikumus (no apakšas uz augšu veido hex ciparus):
- 419 ÷ 16 = 26 atlikums 3 → zemākais (labākais) hex cipars = 3
- 26 ÷ 16 = 1 atlikums 10 → nākamais cipars = A
- 1 ÷ 16 = 0 atlikums 1 → augstākais cipars = 1
- Rezultāts: 1A3₁₆.
Heksadecimāls ↔ binārs: katrs heksadecimālais cipars atbilst četru bitu grupai (no 0000 līdz 1111). Tādēļ pārveidošana ir ātra:
- 1A3₁₆ → 1 = 0001, A = 1010, 3 = 0011 → bināri: 0001 1010 0011 (parasti raksta bez vadošajiem nulles: 110100011).
- Bināri 11011011 → grupējiet no labās puses pa četriem: 1101 1011 → D B → DB₁₆ (tātad 11011011₂ = 0xDB).
Biežākie pielietojumi
- Atmiņas adreses un mašīnas instrukcijas — īsāks un pārskatāmāks pieraksts nekā garas binārvirknes.
- Krāsu kodi tīmekļa dizainā — RGB krāsas bieži tiek attēlotas kā #RRGGBB (piem., #FF0000 = sarkana).
- Debugging un zemas līmeņa programmēšana (assembly, ierīču draiveri), kur bitu un baitu līmenis ir svarīgs.
Piezīmes un padomi
- Atcerieties, ka heksadecimālā ciparu kopa ir 0–9 un A–F (A=10 ... F=15).
- Heksadecimālā pierakstā bieži izmanto prefiksu 0x (C, C++, C#, daudzas citas valodas) vai sufiksu h (dažās montāžas valodās).
- Ja strādājat ar bināru datu grupām, atcerieties, ka četri biti = viens heksadecimāls cipars, un tāpēc pāreja starp bināro un heksadecimālo ir tieša un ātra.
Heksadecimālā sistēma padara cilvēkam saprotamu un pārlūkojamu to, kas citādi datora valodā būtu garas nulles un vieninieki — tāpēc tā ir plaši izmantota informātikā un elektronikas nozarē.
Heksadecimālās vērtības
Sešciparu skaitļu sistēma ir līdzīga astotdaļskaitļu sistēmai (bāze 8), jo katru no tām var viegli salīdzināt ar bināro skaitļu sistēmu. Sešciparu sistēmā izmanto četru bitu bināro kodējumu. Tas nozīmē, ka katrs cipars sešciparu sistēmā ir tas pats, kas četri cipari binārajā sistēmā. Astoņciparu sistēmā izmanto trīs bitu bināro sistēmu.
Decimālskaitļu sistēmā pirmais cipars ir vieninieka vieta, nākamais cipars pa kreisi ir desmitnieka vieta, nākamais ir simtnieka vieta utt. Sešpadsmitzīmju sistēmā katrs cipars var būt 16, nevis 10 vērtības. Tas nozīmē, ka cipariem ir vieninieka vieta, sešpadsmitnieka vieta, un nākamais cipars ir 256 vieta. Tātad 1h = 1 decimālskaitlis, 10h = 16 decimālskaitļi, un 100h = 256 decimālskaitļi.
Sešciparu skaitļu vērtību piemēri, kas pārveidoti binārajā, astotdaļskaitļos un decimālskaitļos.
|
Konvertēšana
Bināro ciparu sistēmā uz heksadecimālo ciparu sistēmā
Mainot skaitli no bināra uz hex, tiek izmantota grupēšanas metode. Bināro skaitli sadala grupās pa četriem cipariem, sākot no labās puses. Pēc tam šīs grupas tiek pārveidotas par sešciparu cipariem, kā parādīts diagrammā iepriekš, kas attiecas uz sešciparu cipariem no 0 līdz F. Lai mainītu ciparus no sešciparu cipariem, tiek darīts otrādi. Katru sešciparu ciparu pārveido par bināro ciparu, un grupēšana parasti tiek noņemta.
| Binary | Grupas | Hex | |||
| 01100101 | 0110 | 0101 | 65 | ||
| 010010110110 | 0100 | 1011 | 0110 | 4B6 | |
| 1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Ja bitu skaits binārajā rakstzīmē nav 4 reizinājums, tas tiek papildināts ar nullēm, lai to padarītu par tādu. Piemēri:
- binārais 110 = 0110, kas ir 6 Hex.
- binārais 010010 = 00010010, kas ir 12 Hex.
Sešciparu skaitļa pārvēršana decimālskaitlī uz decimālskaitli
Lai pārvērstu skaitli no sešciparu uz decimālskaitli, ir divi izplatīti veidi.
Pirmo metodi biežāk izmanto, ja to konvertē manuāli:
- Katram heksadecimālajam ciparam izmantojiet decimālo vērtību. 0-9 ir tas pats, bet A = 10, B = 11, C = 12, D = 13, E = 14 un F = 15.
- Saglabājiet katrā no turpmāk minētajiem soļiem pārveidoto skaitļu summu.
- Sāciet ar mazāko sešciparu skaitli. Tas ir cipars labajā galā. Tas būs pirmais elements summā.
- Paņemiet otro mazāko zīmīgo ciparu. Tas ir blakus ciparam labajā pusē. Apzīmējuma decimālskaitļa vērtību reiziniet ar 16. Pievienojiet to summai.
- Tāpat rīkojieties ar trešo mazāko zīmīgo ciparu, bet reiziniet to ar 162 (tas ir, 16 kvadrāts jeb 256). Pievienojiet to summai.
- Turpiniet ar katru ciparu, katru vietu reizinot ar citu 16 reizinātāju. (4096, 65536 utt.)
|
| Atrašanās vieta | |||||
| 6 | 5 | 4 | 3 | 2 | 1 | |
| Vērtība | 1048576 (165) | 65536 (164) | 4096 (163) | 256 (162) | 16(161) | 1 (160) |
Nākamo metodi biežāk izmanto, konvertējot skaitli programmatūrā. Pirms sākšanas tai nav jāzina, cik ciparu ir skaitlim, un tā nekad neveic reizināšanu ar vairāk par 16, taču uz papīra tā izskatās garāka.
- Katram heksadecimālajam ciparam izmantojiet decimālo vērtību. 0-9 ir tas pats, bet A = 10, B = 11, C = 12, D = 13, E = 14 un F = 15.
- Saglabājiet katrā no turpmāk minētajiem soļiem pārveidoto skaitļu summu.
- Sāciet ar visnozīmīgāko ciparu (ciparu, kas atrodas kreisajā pusē). Tas ir pirmais elements summā.
- Ja ir vēl viens cipars, reiziniet summu ar 16 un pieskaitiet nākamā cipara decimālskaitli.
- Atkārtojiet iepriekš minēto darbību, līdz vairs nav ciparu.
Piemērs: 5Fh un 3425h uz decimālskaitli, 1. metode
|
|
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
Piemērs: 5Fh un 3425h uz decimālskaitli, 2. metode
|
|
|
|
| |||||||||||||||||||||||||||||||||||||||||
Saistītās lapas
- Bināro skaitļu sistēma
- Astoņciparu skaitļu sistēma
- Decimālskaitļu sistēma
Jautājumi un atbildes
J: Kas ir heksadecimālā ciparu sistēma?
A: Sešpadsmit ciparu sistēma ir 16 bāzē esoša skaitīšanas sistēma, ko veido 16 simboli.
J: Kādi ir desmit simboli, ko izmanto decimālskaitļu (10. bāze) sistēmā?
A: Desmit simboli, ko izmanto decimālajā (10. bāzes) sistēmā, ir 0,1,2,3,4,5,6,7,8 un 9.
J: Kādi seši papildu simboli tiek izmantoti sešciparu sistēmā?
A: Sešciparu sistēmā izmanto burtus no angļu alfabēta - A, B, C, D, E un F.
J: Cik bitu satur viens baits mūsdienu datoros?
A: Mūsdienu datoros katrs baits parasti satur astoņus bitus.
J: Ko inženieri un datorzinātnieki sauc par četru bitu vērtībām?
A: Inženieri un datorzinātnieki četru bitu vērtības dēvē par nibliem (dažreiz rakstīts nybble).
J: Kā, rakstot sešciparu skaitļus, izvairīties no pārpratumiem ar citām skaitīšanas sistēmām?
A: Lai izvairītos no pārpratumiem ar citām skaitīšanas sistēmām, rakstot sešciparu skaitļus, var pievienot "h" aiz skaitļa vai "0x" pirms skaitļa. Piemēram, 63h vai 0x63 nozīmē 63 sešciparu skaitli.
Meklēt