Kako radi konverzija između brojevnih sistema
Osnova (ili radiks) brojevnog sistema je broj cifara koje sistem ima. Decimalni ih ima deset (0–9), binarni dve (0 i 1), oktalni osam, a heksadecimalni šesnaest (0–9, pa A–F). Vrednost zapisanog broja je zbir svake cifre pomnožene osnovom dignutom na stepen njene pozicije, pri čemu se pozicije broje od nule sa desne strane.
Dakle, 1011 binarno je 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11, a FF heksadecimalno je 15×16¹ + 15×16⁰ = 240 + 15 = 255.
Konverzija iz decimalnog u drugu osnovu
- Podelite broj ciljnom osnovom i zapišite ostatak.
- Ponovo podelite količnik i nastavite dok količnik ne postane 0.
- Pročitajte ostatke od poslednjeg ka prvom. To je broj u novoj osnovi.
Za 11 → binarno: 11 ÷ 2 = 5 ost. 1, 5 ÷ 2 = 2 ost. 1, 2 ÷ 2 = 1 ost. 0, 1 ÷ 2 = 0 ost. 1. Čitano odozdo nagore: 1011. Konvertor iznad ispisuje ove korake za svaki broj koji unesete.
Heks i binarno su ista stvar u drugom ruhu
Pošto je 16 = 2⁴, svaka heks cifra je tačno četiri binarne cifre (jedan nibl). Za konverziju zamenite svaku heks cifru njenim 4-bitnim obrascem i obrnuto. 0xBEEF = 1011 1110 1110 1111. Oktalni sistem radi na isti način, sa grupama od po tri bita. Zato programeri više vole heks: to je kompaktan način da se zapišu obrasci bitova.
| Heks | Binarno | Dec | Heks | Binarno | Dec |
|---|---|---|---|---|---|
| 0 | 0000 | 0 | 8 | 1000 | 8 |
| 1 | 0001 | 1 | 9 | 1001 | 9 |
| 2 | 0010 | 2 | A | 1010 | 10 |
| 3 | 0011 | 3 | B | 1011 | 11 |
| 4 | 0100 | 4 | C | 1100 | 12 |
| 5 | 0101 | 5 | D | 1101 | 13 |
| 6 | 0110 | 6 | E | 1110 | 14 |
| 7 | 0111 | 7 | F | 1111 | 15 |
Prefiksi na koje ćete naići u kodu
Većina jezika označava osnovu prefiksom: 0x1F za heks, 0b11111 za binarno, 0o37 (ili vodeća 0 u C-u) za oktalno. Ovaj konvertor prihvata sve njih, a ignoriše i razmake, donje crte i zareze, pa 1111_1111 i 1111 1111 rade podjednako.
Primeri
Pitanja
Kako da ručno pretvorim binarni broj u decimalni?
Ispod cifara, zdesna nalevo, napišite stepene dvojke (1, 2, 4, 8, 16 …), pa saberite one stepene iznad kojih stoji 1. Za 1101 to je 8 + 4 + 1 = 13.
Kako da pretvorim decimalni broj u heksadecimalni?
Delite sa 16 više puta i skupljajte ostatke; ostaci od 10 do 15 pišu se kao A–F. 255 ÷ 16 = 15 ost. 15 → 15 ÷ 16 = 0 ost. 15, pa je 255 = FF. Ili prvo pretvorite u binarno i čitajte u grupama od po četiri bita.
Zašto programeri koriste heksadecimalni sistem?
Jedna heks cifra je tačno četiri bita, pa je bajt uvek dve heks cifre. Memorijske adrese, kodovi boja, hešovi i bit zastavice lakše se čitaju i kucaju kao heks nego kao dugački binarni nizovi, a veza sa bitovima ostaje očigledna.
Da li konvertor radi sa velikim brojevima?
Da. Koristi cele brojeve proizvoljne preciznosti, pa se vrednosti preko 64 bita (na primer 256-bitni hešovi zapisani decimalno) konvertuju tačno, bez zaokruživanja.
Kako se obrađuju negativni brojevi?
Vodeći minus se zadržava, a konvertuje se apsolutna vrednost (−10 binarno postaje −1010). Ako vam treba obrazac bitova koji bi CPU sačuvao, dakle dvojični komplement, koristite alat za dvojični komplement, u kome birate širinu u bitovima.
Da li se moj unos šalje na server?
Ne. Konverzija se izvršava u vašem pregledaču. Sajt nema bekend koji prima vaše brojeve.