Binarni, decimalni i heksadecimalni: kako prelaziti iz jednog u drugi

Pretvorba među bazama djeluje kao magija dok ne vidite da je to uvijek ista ideja: svaka znamenka vrijedi prema mjestu na kojem stoji. Ovdje učite ručno pretvarati iz binarnog u decimalni i iz decimalnog u binarni, bez straha čitati heksadecimalni zapis i prevoditi tekst u bitove, uz riješene račune i tablicu od 0 do 15 pri ruci.

Ažurirano:

Što je pozicijski sustav

U decimalnom broju 4.095 znamenka 4 ne vrijedi 4: vrijedi 4.000, jer stoji na mjestu tisućica. Svaka pozicija množi znamenku potencijom broja 10 (1, 10, 100, 1.000…). To je pozicijski sustav, a baza je broj različitih znamenki koje se koriste: u decimalnom sustavu deset.

Binarni sustav radi jednako, ali s bazom 2: postoje samo 0 i 1, a svako mjesto vrijedi dvostruko više od prethodnog. Heksadecimalni koristi bazu 16: šesnaest znamenki su 0 do 9 i slova A do F, a svako mjesto vrijedi 16 puta više od prethodnog. Računala rade u binarnom jer strujni krug mora razlikovati samo dva stanja (isključeno i uključeno), a heksadecimalni je kratak način zapisivanja tih bitova.

Koliko vrijedi svako mjesto. Ako napamet naučite potencije broja 2 do 128, uštedjet ćete gotovo sve račune.
Pozicija (zdesna nalijevo)Vrijednost u binarnomVrijednost u heksadecimalnom
1.11
2.216
3.4256
4.84.096
5.1665.536
6.321.048.576
7.6416.777.216
8.128268.435.456

Iz binarnog u decimalni, ručno

Svaka se znamenka zapiše s vrijednošću svog mjesta i zbroje se samo ona mjesta na kojima je 1. Primjer s 1101: zdesna nalijevo mjesta vrijede 1, 2, 4 i 8.

  1. Zapišite broj, a ispod njega vrijednost svake pozicije: 1 1 0 1 iznad 8 4 2 1.
  2. Pogledajte što je na svakom mjestu: 1 na mjestu osmice, 1 na mjestu četvorke, 0 na mjestu dvojke i 1 na mjestu jedinice.
  3. Zanemarite mjesta na kojima je 0 (ovdje je to mjesto dvojke).
  4. Zbrojite: 8 + 4 + 0 + 1 = 13. Dakle, 1101 u binarnom je 13 u decimalnom.

S više znamenki je isto: 11111111 je 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, najveća vrijednost koja stane u 8 bitova. A 10110110 je 128 + 32 + 16 + 4 + 2 = 182.

Iz decimalnog u binarni, uzastopnim dijeljenjem

Broj se dijeli s 2 iznova i iznova, a ostatak svakog dijeljenja (uvijek 0 ili 1) zapisuje se sve dok količnik ne postane 0. Ostaci, pročitani odozdo prema gore, čine binarni broj. Primjer s 45:

Čitanjem ostataka odozdo prema gore dobije se 101101. Za provjeru zbrojite: 32 + 8 + 4 + 1 = 45.

Postoji i alternativna metoda koju mnogi preferiraju: oduzimanje potencija broja 2 od najveće prema najmanjoj. Za 200: stane 128 (ostaje 72), stane 64 (ostaje 8), ne staju 32 i 16, ali stane 8 (ostaje 0). Korištena mjesta su 128, 64 i 8, pa je 200 = 11001000.

Heksadecimalni: šesnaest znamenki i tablica pri ruci

Budući da ne postoje znamenke za 10 do 15, koriste se slova A, B, C, D, E i F. Jedna heksadecimalna znamenka odgovara točno četirima bitovima (jedan „nibble“), i zato je tako praktična: bajt od 8 bitova zapisuje se samo dvjema heksadecimalnim znamenkama.

Za pretvorbu iz heksadecimalnog u decimalni pomnožite svaku znamenku potencijom broja 16 njezina mjesta i zbrojite. Na primjer, 3F = 3 × 16 + 15 = 63 i A3 = 10 × 16 + 3 = 163.

Od 0 do 15 u četiri baze koje alat prikazuje.
DecimalniBinarni (4 bita)OktalniHeksadecimalni
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Zašto se koristi heksadecimalni: bajtovi, boje i adrese

Bajt je 8 bitova i kreće se od 0 do 255 (00000000 do 11111111). Ručno zapisivanje bitova je sporo i sklono pogreškama; u heksadecimalnom isti bajt čine dva znaka, od 00 do FF. Za pretvorbu iz binarnog u heksadecimalni podijelite bitove u skupine od četiri zdesna i svaku skupinu zamijenite njezinom znamenkom iz tablice. Primjer: 11010111 dijeli se na 1101 i 0111, a to su D i 7, pa je vrijednost D7. U decimalnom je to 13 × 16 + 7 = 215.

Najpoznatiji slučaj su web boje. U #FF8800 postoje tri bajta: FF za crvenu (255), 88 za zelenu (136) i 00 za plavu (0). To je intenzivna narančasta: sva crvena, nešto više od pola zelene i nimalo plave. Heksadecimalni se pojavljuje i u memorijskim adresama, kodovima pogrešaka i mrežnim identifikatorima.

Iz teksta u binarni pomoću ASCII-ja

Računalo svako slovo sprema kao broj, a taj broj kao bitove. U ASCII tablici A je 65, što je u 8-bitnom binarnom 01000001. Riječ „Hi“ su dva slova: H je 72 (01001000), a i je 105 (01101001), pa se piše 01001000 01101001. Za „Hola“ su to 72, 111, 108 i 97, odnosno 01001000 01101111 01101100 01100001, a u heksadecimalnom 48 6F 6C 61.

Alat koristi UTF-8 kodiranje: za osnovna engleska slova svaki znak zauzima jedan bajt od 8 bitova, ali slova s dijakriticima (č, ć, š, ž, đ) ili emotikoni zauzimaju više bajtova, pa daju više od 8 bitova. Na primjer, slovo š su dva bajta: 11000101 10100001 (C5 A1 u heksadecimalnom).

Kako sve to učiniti pomoću alata

Pretvarač „Binarni, decimalni i hex“ služi za provjeru vaših ručnih računa ili za rješavanje dugih brojeva bez pogrešaka.

  1. Upišite broj u polje njegove baze: „Decimalni (baza 10)“, „Binarni (baza 2)“, oktalni ili „Heksadecimalni (baza 16)“. Ostala tri popunit će se sama.
  2. Ako znamenka ne odgovara bazi (na primjer 2 u binarnom), alat će vas upozoriti.
  3. Za tekst ga upišite u polje „Tekst“ i pogledajte „Binarni (8 bitova po znaku)“ i heksadecimalni po bajtovima. Možete i zalijepiti bitove u skupinama od 8 kako biste se vratili na tekst.
  4. Za neobične baze koristite „Bilo koja baza (2 do 36)“: odaberete početnu bazu, ciljnu bazu i broj.

Ograničenja: pretvara samo nenegativne cijele brojeve (bez decimala i predznaka) i ne dodaje vodeće nule umjesto vas, pa ako želite fiksnih 8 bitova, morate ih dopuniti ručno (13 je 00001101). Ništa što upišete ne napušta vaš preglednik.

Česte pogreške

Riješene vježbe

Pokušajte riješiti svaku prije nego pogledate odgovor, a zatim provjerite alatom.

Često postavljana pitanja

Kako pretvoriti 1101 iz binarnog u decimalni?

Zbrojite vrijednosti mjesta na kojima je 1: 8 + 4 + 1 = 13. Druga znamenka zdesna je 0, pa se 2 ne zbraja.

Koliko je 255 u binarnom i heksadecimalnom?

255 je 11111111 u binarnom i FF u heksadecimalnom. To je najveća vrijednost koja stane u bajt od 8 bitova.

Zašto heksadecimalni koristi slova?

Zato što mu je potrebno šesnaest različitih simbola, a decimalni sustav daje samo deset (0 do 9). Zato A vrijedi 10, B 11, C 12, D 13, E 14 i F 15.

Koliko se različitih brojeva može zapisati s 8 bitova?

256, od 0 do 255. Općenito, s n bitova može se prikazati 2 na n-tu potenciju vrijednosti.

Pretvara li alat negativne brojeve ili brojeve s decimalama?

Ne, samo nenegativne cijele brojeve. Za tekst koristi UTF-8, pa slova s dijakriticima i emotikoni daju više od 8 bitova.