Šestnajstiški številski sistem (osnova 16): definicija, primeri in uporaba
Šestnajstiški številski sistem (osnova 16), pogosto skrajšan v pogovornem žargonu, je številski sistem, sestavljen iz 16 simbolov (osnova 16). Standardni sistem, ki ga ljudje običajno uporabljamo, je desetiški (osnova 10) in uporablja deset simbolov: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Ker v šestnajstiškem sistemu potrebujemo še šest dodatnih vrednosti, se za njih uporabljajo črke iz angleške abecede, in sicer A, B, C, D, E in F. Tako šestnajstiški A = desetiški 10, šestnajstiški F = desetiški 15.
Zakaj uporabljamo šestnajstiški sistem
Ljudje večinoma uporabljamo desetiški sistem — verjetno zato, ker imamo deset prstov. Računalniki pa delujejo na osnovi dveh stanj (vklop/izklop), zato temeljijo na binarnem sistemu (0 in 1). Zelo dolge binarne nize je priročno združevati v večje skupine za lažje branje in zapisovanje. Ker je 16 = 2^4, je vsak šestnajstiški znak natanko predstavitev štirih bitov. Zato je šestnajstiški sistem pri računalništvu zelo uporaben: skrajša in poenostavi zapis binarnih podatkov.
Bit, nibble, bajt in povezava s šestnajstiškim
V računalniškem žargonu štirje biti tvorijo nibble (včasih nybble) — točno eno šestnajstiško števko, zapisana s simbolom 0–9 ali A–F. Dva nibla sestavljata bajt (8 bitov). Pri delu s podatki in naslovnimi prostori se zato pogosto uporablja šestnajstiško zapisovanje, saj en hex-znak predstavlja natanko 4 bite, dva hex-znaka pa 1 bajt.
Osnovna mapa hex simbolov
- 0–9 predstavljajo vrednosti 0–9
- A = 10, B = 11, C = 12, D = 13, E = 14, F = 15
Pretvorbe: kako računamo med sistemi
Osnovni postopek za pretvorbo šestnajstiškega števila v desetiško je množenje vsake cifre z ustrezno potenco 16 in seštevanje.
Primer: 1A316 = 1·16^2 + A·16^1 + 3·16^0 = 1·256 + 10·16 + 3·1 = 256 + 160 + 3 = 41910.
Za pretvorbo iz desetiškega v šestnajstiški sistem delimo število s 16 in zapisujemo ostanke:
Primer: 419 ÷ 16 = 26 ostanek 3 → prva (najmanj pomembna) hex-cifra = 3
26 ÷ 16 = 1 ostanek 10 → naslednja hex-cifra = A
1 ÷ 16 = 0 ostanek 1 → najvišja hex-cifra = 1
Rezultat: 41910 = 1A316.
Hex in binarno
Ker je 16 = 2^4, lahko za pretvorbo med hex in binarno enostavno razbijemo hex-cifre v grupe po štiri bite. Primer:
0x63 = 6 in 3 → 6 = 0110, 3 = 0011 → 0x63 = 0110 0011 (bin).
Obratno: binarni niz 11011011 razdelimo z desne v levo po štiri bite: 1101 1011 → 1101 = D, 1011 = B → hex = DB.
Notacije in sintaksa
Da bi se izognili zamenjavi z desetiškim ali osmeričnim zapisom, se za označevanje šestnajstiških števil uporabljajo različne konvencije:
- Predpona 0x (npr. 0x63) je zelo razširjena v C/C++ in številnih drugih jezikih.
- Pripona h (npr. 63h) se uporablja v nekaterih assemblerjih in dokumentaciji — upoštevajte, da v nekaterih assemblerjih števila, ki se začnejo z črko, zahtevajo predpono 0 (npr. 0ABh), da jih ne bi napačno interpretirali.
- V nekaterih okoljih se uporablja tudi predpona $ (npr. $FF) ali zapis z znakom # pri barvnih kodah v spletnem oblikovanju (npr. #FF00AA).
Primeri uporabe
- Prikaz barv v spletnem oblikovanju: barve so pogosto podane kot #RRGGBB v šestnajstiškem formatu (npr. #FF0000 = rdeča).
- Pri prikazu pomnilniških naslovov in podatkov pri programiranju strojne opreme, v debuggiranju in pri razvoju operacijskih sistemov.
- V kriptografiji in kodiranju, kjer so podatki pogosto predstavljeni kot nizi hex-znakov.
- V formatu datotek in protokolih, kjer hex omogoča kompaktnejši in berljivejši zapis binarnih podatkov.
Dodatne opombe
Šestnajstiške črke so običajno zapisane z velikimi ali malimi črkami (A–F ali a–f); večina orodij ju obravnava enako. Ker vsak hex-znak predstavlja natančno štiri bite, je šestnajstiški zapis lahek za pretvorbo in interpretacijo binarnih struktur — zato je eden osnovnih in pogostih načinov predstavitve podatkov v računalništvu.
Za primer iz prvotnega besedila: zapisa 63h in 0x63 pomenita enako — število 63 v šestnajstiškem sistemu.
Šestnajstiške vrednosti
Šestnajstiški številski sistem je podoben osmiškemu številskemu sistemu (osnova 8), saj ga je mogoče enostavno primerjati z dvojiškim številskim sistemom. Šestnajstiški sistem uporablja štiri-bitno binarno kodiranje. To pomeni, da je vsaka številka v šestnajstiškem sistemu enaka štirim številkam v dvojiškem sistemu. Osmerokotni sistem uporablja tri-bitni binarni sistem.
V desetiškem sistemu je prva številka enica, naslednja številka levo je desetica, naslednja je stotica itd. V šestnajstiškem sistemu ima lahko vsaka številka 16 vrednosti in ne 10. To pomeni, da imajo števke mesto enice, mesto šestnajstice, naslednja pa je mesto 256. Tako je 1h = 1 decimalno, 10h = 16 decimalno in 100h = 256 decimalno.
Primeri vrednosti heksadecimalnih števil, pretvorjenih v binarno, oktalno in decimalno obliko.
|
Pretvorba
Binarno v heksadecimalno
Pri spreminjanju števila iz dvojiškega v šestnajstiško se uporablja metoda razvrščanja v skupine. Binarno število se razdeli na skupine štirih številk, ki se začnejo z desne strani. Te skupine se nato pretvorijo v šestnajstiške številke, kot je prikazano v zgornji tabeli za šestnajstiška števila od 0 do F. Za spremembo iz šestnajstiške se izvede obraten postopek. Šestnajstiške številke se spremenijo v dvojiške, pri čemer se običajno odstrani razvrščanje v skupine.
Binarni | Skupine | Šesterokolesnik | |||
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Kadar število bitov v binarnem številu ni večkratnik števila 4, je to število dopolnjeno z ničlami. Primeri:
- binarni 110 = 0110, kar je 6 hex.
- binarno 010010 = 00010010, kar je 12 šestnajstiških številk.
Šestnajstiško v decimalno
Številko iz šestnajstiške v decimalno obliko lahko pretvorite na dva običajna načina.
Prva metoda je pogostejša pri ročnem pretvarjanju:
- Za vsako šestnajstiško številko uporabite decimalno vrednost. Za 0-9 je enako, vendar A = 10, B = 11, C = 12, D = 13, E = 14 in F = 15.
- Shranite vsoto številk, pretvorjenih v vsakem koraku spodaj.
- Začnite z najmanj pomembno šestnajstiško številko. To je številka na desnem koncu. To bo prva postavka v vsoti.
- Vzemite drugo najmanj pomembno številko. Ta je poleg številke na desnem koncu. Decimalno vrednost te številke pomnožite s 16. To prištejte k vsoti.
- Enako naredite za tretjo najmanj pomembno številko, vendar jo pomnožite s 162 (to je 16 na kvadrat ali 256). Prištejte jo k vsoti.
- Nadaljujte za vsako števko in vsako mesto pomnožite z drugo močjo 16. (4096, 65536 itd.)
| Lokacija | |||||
6 | 5 | 4 | 3 | 2 | 1 | |
Vrednost | 1048576 (165) | 65536 (164) | 4096 (163) | 256 (162) | 16(161) | 1 (160) |
Naslednja metoda se pogosteje uporablja pri pretvorbi števila v programski opremi. Pred začetkom ji ni treba vedeti, koliko števk ima število, in nikoli ne množi z več kot 16, vendar je na papirju videti daljša.
- Za vsako šestnajstiško številko uporabite decimalno vrednost. Za 0-9 je enako, vendar A = 10, B = 11, C = 12, D = 13, E = 14 in F = 15.
- Shranite vsoto številk, pretvorjenih v vsakem koraku spodaj.
- Začnite z najpomembnejšo števko (števka na skrajni levi). To je prva postavka v vsoti.
- Če obstaja še ena številka, pomnožite vsoto s 16 in dodajte decimalno vrednost naslednje številke.
- Zgornji korak ponavljajte, dokler ni več številk.
Primer: 5Fh in 3425h v decimalno število, metoda 1
|
|
|
|
Primer: 5Fh in 3425h v decimalno število, metoda 2
|
|
|
|
Sorodne strani
- Binarni številski sistem
- Oktalni številski sistem
- Decimalni številski sistem
Vprašanja in odgovori
V: Kaj je šestnajstiški številski sistem?
O: Šestnajstiški številski sistem je številski sistem osnove 16, ki ga sestavlja 16 simbolov.
V: Katerih deset simbolov se uporablja v desetiškem številskem sistemu (osnova 10)?
O: Deset simbolov, ki se uporabljajo v desetiškem sistemu (osnova 10), je 0,1,2,3,4,5,6,7,8 in 9.
V: Katerih šest dodatnih simbolov uporablja šestnajstiški sistem?
O: Šestnajstiški sistem uporablja črke iz angleške abecede: A, B, C, D, E in F.
V: Koliko bitov vsebuje en bajt v sodobnih računalnikih?
O: V sodobnih računalnikih vsak bajt običajno vsebuje osem bitov.
V: Kako inženirji in računalničarji imenujejo štiribitne vrednosti?
O: Inženirji in računalničarji imenujejo štiribitne vrednosti nibble (včasih zapisano nybble).
V: Kako se lahko pri zapisovanju šestnajstiških števil izognete zamenjavi z drugimi številskimi sistemi?
O: Da bi se izognili zmedi z drugimi številskimi sistemi, lahko pri pisanju šestnajstmestnih številk dodate črko "h" za številko ali črko "0x" pred številko. Na primer 63h ali 0x63 pomeni 63 v šestnajstiškem sistemu.