Kaj je pozicijski številski sistem
V desetiškem številu 4.095 štirica ne pomeni 4: pomeni 4.000, ker stoji na mestu tisočic. Vsako mesto pomnoži števko s potenco števila 10 (1, 10, 100, 1.000 …). To je pozicijski sistem, osnova pa je število različnih števk, ki jih uporabljamo: pri desetiškem jih je deset.
Dvojiški sistem deluje enako, a z osnovo 2: obstajata samo 0 in 1, vsako mesto pa velja dvakrat toliko kot prejšnje. Šestnajstiški sistem ima osnovo 16: šestnajst števk je 0 do 9 in črke A do F, vsako mesto pa velja 16-krat toliko kot prejšnje. Računalniki delajo v dvojiškem sistemu, ker mora vezje razlikovati le dve stanji (izklopljeno in vklopljeno), šestnajstiški zapis pa je kratek način za pisanje teh bitov.
| Mesto (od desne proti levi) | Vrednost v dvojiškem sistemu | Vrednost v šestnajstiškem sistemu |
|---|---|---|
| 1. | 1 | 1 |
| 2. | 2 | 16 |
| 3. | 4 | 256 |
| 4. | 8 | 4.096 |
| 5. | 16 | 65.536 |
| 6. | 32 | 1.048.576 |
| 7. | 64 | 16.777.216 |
| 8. | 128 | 268.435.456 |
Iz dvojiškega v desetiški zapis, na roke
Vsako števko zapišeš z vrednostjo njenega mesta in seštevaš samo mesta, kjer je enica. Primer z 1101: od desne proti levi imajo mesta vrednosti 1, 2, 4 in 8.
- Zapiši število in pod njim vrednost vsakega mesta: 1 1 0 1 nad 8 4 2 1.
- Poglej, kaj je na vsakem mestu: enica na mestu osmice, enica na mestu štirice, ničla na mestu dvojke in enica na mestu enice.
- Prezri mesta z ničlo (tu mesto dvojke).
- Seštej: 8 + 4 + 0 + 1 = 13. Torej je 1101 v dvojiškem zapisu 13 v desetiškem.
Z več števkami je enako: 11111111 je 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, največja vrednost, ki gre v 8 bitov. In 10110110 je 128 + 32 + 16 + 4 + 2 = 182.
Iz desetiškega v dvojiški zapis, z zaporednim deljenjem
Število znova in znova deliš z 2 in si zapišeš ostanek vsakega deljenja (vedno 0 ali 1), dokler ne dobiš količnika 0. Ostanki, prebrani od spodaj navzgor, so dvojiško število. Primer s 45:
- 45 ÷ 2 = 22, ostanek 1
- 22 ÷ 2 = 11, ostanek 0
- 11 ÷ 2 = 5, ostanek 1
- 5 ÷ 2 = 2, ostanek 1
- 2 ÷ 2 = 1, ostanek 0
- 1 ÷ 2 = 0, ostanek 1
Če ostanke prebereš od spodaj navzgor, dobiš 101101. Za preverjanje seštej: 32 + 8 + 4 + 1 = 45.
Obstaja tudi drugačen postopek, ki ga mnogi raje uporabljajo: odštevanje potenc števila 2 od največje do najmanjše. Pri 200: gre 128 (ostane 72), gre 64 (ostane 8), 32 in 16 ne gresta, 8 pa gre (ostane 0). Uporabljena mesta so 128, 64 in 8, zato je 200 = 11001000.
Šestnajstiški zapis: šestnajst števk in tabela pri roki
Ker ni števk za 10 do 15, uporabljamo črke A, B, C, D, E in F. Ena šestnajstiška števka ustreza natanko štirim bitom (»nibble«), zato je tako priročna: bajt, ki ima 8 bitov, se zapiše le z dvema šestnajstiškima števkama.
Za pretvorbo iz šestnajstiškega v desetiški zapis pomnoži vsako števko s potenco števila 16 njenega mesta in seštej. Na primer, 3F = 3 × 16 + 15 = 63 in A3 = 10 × 16 + 3 = 163.
| Desetiško | Dvojiško (4 biti) | Osmiško | Šestnajstiško |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Zakaj se uporablja šestnajstiški zapis: bajti, barve in naslovi
Bajt je 8 bitov in zajema vrednosti od 0 do 255 (00000000 do 11111111). Pisanje bitov na roke je počasno in nagnjeno k napakam; v šestnajstiškem zapisu je isti bajt dva znaka, od 00 do FF. Za pretvorbo iz dvojiškega v šestnajstiški zapis razdeli bite v skupine po štiri od desne in vsako skupino zamenjaj z njeno števko iz tabele. Primer: 11010111 razdeliš na 1101 in 0111, ki sta D in 7, zato je vrednost D7. V desetiškem zapisu je to 13 × 16 + 7 = 215.
Najbolj znan primer so spletne barve. V #FF8800 so trije bajti: FF za rdečo (255), 88 za zeleno (136) in 00 za modro (0). To je živo oranžna barva: vsa rdeča, nekaj več kot polovica zelene in nič modre. Šestnajstiški zapis se pojavlja tudi pri pomnilniških naslovih, kodah napak in omrežnih oznakah.
Iz besedila v dvojiški zapis z ASCII
Računalnik vsako črko shrani kot število, to število pa kot bite. V tabeli ASCII je A številka 65, kar je v 8-bitnem dvojiškem zapisu 01000001. Beseda »Hi« sta dve črki: H je 72 (01001000) in i je 105 (01101001), zato se zapiše 01001000 01101001. Pri besedi »Hola« so to 72, 111, 108 in 97, torej 01001000 01101111 01101100 01100001, v šestnajstiškem zapisu pa 48 6F 6C 61.
Orodje uporablja kodiranje UTF-8: pri osnovnih angleških črkah vsak znak zavzame en bajt z 8 biti, črka š, črka z naglasom ali emoji pa zavzamejo več bajtov, zato dajo več kot 8 bitov. Na primer, črka ñ sta dva bajta: 11000011 10110001 (C3 B1 v šestnajstiškem zapisu).
Kako vse to narediš z orodjem
Pretvornik Dvojiško, desetiško in šestnajstiško je uporaben za preverjanje ročnih računov ali za reševanje dolgih števil brez napak.
- Vnesi število v polje njegovega sistema: Desetiško (osnova 10), Dvojiško (osnova 2), osmiško ali Šestnajstiško (osnova 16). Ostala tri se izpolnijo sama.
- Če števka ne ustreza sistemu (na primer 2 v dvojiškem), te orodje opozori.
- Za besedilo ga vnesi v polje Besedilo in poglej Dvojiško (8 bitov na znak) ter šestnajstiški zapis po bajtih. Prilepiš lahko tudi bite v skupinah po 8, da se vrneš k besedilu.
- Za nenavadne sisteme uporabi Poljuben sistem (2 do 36): izbereš izhodiščno osnovo, ciljno osnovo in število.
Omejitve: pretvarja samo nenegativna cela števila (brez decimalk in predznaka) in ti ne doda vodilnih ničel, zato jih moraš za stalnih 8 bitov dodati sam (13 je 00001101). Nič, kar vpišeš, ne zapusti tvojega brskalnika.
Pogoste napake
- Branje ostankov v napačni smeri: pri zaporednem deljenju je prvi ostanek skrajna desna števka, ne skrajna leva.
- Pozabljene vodilne ničle, kadar so potrebne: 13 je 1101, kot bajt pa 00001101. Pomembno je, kadar je dolžina del podatka, na primer pri barvi ali omrežni maski.
- Zamenjava črke O z ničlo ali šestnajstiškega B (11) z 8 pri kopiranju. V šestnajstiškem zapisu imajo črke enako vrednost kot velike ali male, a niso isto kot števka.
- Pustiti predpono 0x ali znak # pri pretvorbi: to sta le oznaki, da je število šestnajstiško, in ju je treba odstraniti pred lepljenjem.
- Misliti, da je 10 v dvojiškem zapisu deset: je dve. Isti »10« je 2, 10 ali 16, odvisno od osnove.
Rešene vaje za vadbo
Poskusi rešiti vsako, preden pogledaš odgovor, nato pa preveri z orodjem.
- Pretvori 10110110 v desetiški in šestnajstiški zapis. Odgovor: 128 + 32 + 16 + 4 + 2 = 182; v skupinah po štiri 1011 0110 = B6.
- Pretvori 200 v dvojiški in šestnajstiški zapis. Odgovor: 11001000 in C8 (12 × 16 + 8 = 200).
- Pretvori 7F v dvojiški zapis. Odgovor: 7 = 0111 in F = 1111, torej 01111111, kar je v desetiškem zapisu 127.
- Zapiši »OK« v dvojiškem zapisu. Odgovor: O je 79 in K je 75, torej 01001111 01001011.
Pogosta vprašanja
Kako pretvorim 1101 iz dvojiškega v desetiški zapis?
Seštej vrednosti mest, kjer je enica: 8 + 4 + 1 = 13. Druga števka z desne je ničla, zato dvojke ne prišteješ.
Koliko je 255 v dvojiškem in šestnajstiškem zapisu?
255 je 11111111 v dvojiškem in FF v šestnajstiškem zapisu. To je največja vrednost, ki gre v 8-bitni bajt.
Zakaj šestnajstiški sistem uporablja črke?
Ker potrebuje šestnajst različnih simbolov, desetiški sistem pa jih ponuja le deset (0 do 9). Zato je A enako 10, B 11, C 12, D 13, E 14 in F 15.
Koliko različnih števil lahko zapišemo z 8 biti?
256, od 0 do 255. Na splošno lahko z n biti predstavimo 2 na n vrednosti.
Ali orodje pretvarja negativna števila ali števila z decimalkami?
Ne, samo nenegativna cela števila. Za besedilo uporablja UTF-8, zato črke z diakritičnimi znaki in emojiji dajo več kot 8 bitov.