Konverter brojevnih sistema s podrškom za negativne brojeve

Svijet računara radi na nulama i jedinicama, ali ljudi misle u deseticama. A programeri? Oni moraju razumjeti sve između. Bez obzira da li debugirate niskonaponski kod, postavljate boje u CSS-u, izračunavate IP maske ili rješavate zadatke iz informatike, naići ćete na potrebu za konverzijom brojeva između sistema.

Uobičajeni kalkulatori na Windowsima ili mobilnim uređajima su često spori i nezgrapni. Naš inteligentni konverter brojevnih sistema dizajniran je od strane developera za developere. Nudi trenutnu konverziju u realnom vremenu, podršku za ekstremno velike brojeve i, kao jedan od rijetkih online alata, pravilno obrađuje negativne brojeve u binarnom obliku.

Šta ovaj konverter brojevnih sistema može?

Prilikom razvoja ovog widgeta, fokusirali smo se na rješavanje najčešćih problema programera:

  1. Reaktivnost u realnom vremenu: Nema dugmeta “Izračunaj”. Počnite pisati u HEX polje i odmah ćete vidjeti kako se mijenjaju BIN i DEC.
  2. Podrška za negativne brojeve (Signed Integers): Većina online konvertera zakaže kada upišete -5. Mi ne. Zahvaljujući opciji bitne dubine (8, 16, 32, 64 bita) simuliramo precizno ponašanje procesora koristeći takozvani dvokomplement.
  3. Čitljivost binarnog koda: Gledanje u 1110101011011110 zamara oči. Naš alat može automatski formatirati izlaz nakon svaka 4 bita (nibbles) u 1110 1010 1101 1110, što drastično smanjuje greške pri prepisivanju.
  4. BigInt podrška: Trebate pretvoriti 64-bitni broj ili hash? Standardni JavaScript završava na broju $2^{53}$. Naš engine može obraditi brojeve proizvoljne dužine u režimu “Unsigned”.

Vodič kroz brojevne sisteme: Kada koji koristiti?

1. Decimalni sistem (DEC - Decimal)

  • Baza: 10 (cifre 0-9)
  • Upotreba: Svakodnevni život, finansije, brojanje petlji u kodu.
  • Zanimljivost: Računari ga ne razumiju, moraju ga konvertovati u binarni.

2. Binarni sistem (BIN - Binary)

  • Baza: 2 (cifre 0, 1)
  • Upotreba: Mašinski kod, logička kola, maskiranje IP adresa.
  • Savjet: Svaka cifra predstavlja jedan bit. 8 bitova čini 1 bajt (Byte).

3. Heksadecimalni sistem (HEX - Hexadecimal)

  • Baza: 16 (cifre 0-9, slova A-F)
  • Upotreba: Kompaktan zapis binarnog koda. Jedan HEX znak predstavlja tačno 4 bita (nibble). Dva znaka (npr. FF) predstavljaju cijeli bajt.
  • Primjeri:
    • Boje na webu: #FF5733 (Crvena, Zelena, Plava).
    • MAC adrese: 00:1A:2B:3C:4D:5E.
    • Ispisi memorije (Memory dumps).

4. Oktalni sistem (OCT - Octal)

  • Baza: 8 (cifre 0-7)
  • Upotreba: Historijski stariji računari, danas posebno Linux dozvole (chmod).
  • Primjer: Naredba chmod 755 postavlja dozvole rwx-rx-rx (čitanje, pisanje, izvršavanje).

Kako pravilno raditi s negativnim brojevima?

Ovo je najnaprednija funkcija našeg pretvarača. U računarskoj memoriji ne postoji znak “minus”. Da bi računar pohranio negativan broj, najčešće koristi metodu dvokomplementa (Two’s Complement).

Rezultat konverzije negativnog broja ovisi o tome koliko bitova je varijabli dodijeljeno. Zato u gornjoj traci pronađite prekidač Bitna dubina.

Primjer: Kako izgleda broj -5?

Isprobajte sami u našem konverteru:

  1. Postavite dubinu na 8-bit.

    • Unesite u DEC: -5.
    • Rezultat HEX: FB.
    • Rezultat BIN: 1111 1011.
    • Objašnjenje: $256 - 5 = 251$ (što je FB).
  2. Postavite dubinu na 16-bit.

    • Unesite u DEC: -5.
    • Rezultat HEX: FFFB.
    • Objašnjenje: Budući da imamo više prostora, “jedinice” popunjavaju ostatak prostora lijevo.
  3. Postavite dubinu na Samo pozitivni (Unsigned).

    • Ako unesete -5, polje će postati crveno. Ovaj režim ne podržava negativne brojeve, jer bi zahtijevao beskonačno mnogo jedinica.

Profi savjet: Ako radite s bojama ili IP adresama, uvijek koristite režim “Samo pozitivni”. Ako radite zadatke za C/C++ ili asembler, prebacite na 32-bit ili 64-bit.


Tabela brzih konverzija (Cheat Sheet)

Za brzu orijentaciju, ovdje navodimo osnovne vrijednosti koje bi svaki “IT-jevac” trebao znati napamet.

Decimalno (DEC)Heksadecimalno (HEX)Binarno (BIN)Napomena
0000000Nula
1010001
100A1010
150F1111Maksimalna vrijednost 4 bita (Nibble)
16100001 0000
1277F0111 1111Maksimalna vrijednost za potpisani 8-bit (char)
255FF1111 1111Maksimalna vrijednost za nepotpisani 8-bit (bajt)
65 535FFFFMaksimalna vrijednost za 16-bit

Često postavljana pitanja (FAQ)

Šta znači "Bit Depth" (Bitna dubina)? Određuje koliko memorije imamo rezervirano za broj.
  • 8-bit: Vrijednosti 0 do 255 (ili -128 do 127). Odgovara tipu char ili byte.
  • 16-bit: Vrijednosti do 65 535. Odgovara tipu short.
  • 32-bit: Standardni int u modernim jezicima.
  • 64-bit: Za vrlo velike brojeve (long long, BigInt).
Zašto se broj 255 u HEX-u piše kao FF? Heksadecimalni sistem ima 16 cifara (0-9 i A-F), gdje F ima vrijednost 15. Broj FF se izračunava kao: $(15 \times 16^1) + (15 \times 16^0) = 240 + 15 = 255$.
Kako pretvoriti HEX boju u RGB? Boja na webu, npr. #E05412, sastoji se od tri bajta: Crvena (E0), Zelena (54), Plava (12). Unesite u naš konverter "E0" u HEX polje -> dobit ćete 224. Unesite "54" -> dobit ćete 84. Unesite "12" -> dobit ćete 18. Rezultat je rgb(224, 84, 18).
Šta znači prefiks 0x, 0b ili 0o? Da bi programeri razlikovali sisteme, koriste se prefiksi:
  • 0x = Heksadecimalni (npr. 0xFF)
  • 0b = Binarni (npr. 0b101)
  • 0o = Oktalni (npr. 0o755)
Naš konverter prepoznaje ove oznake, ali ih nije potrebno pisati.
Zašto je moje polje postalo crveno? To je funkcija validacije unosa. To znači da ste unijeli znak koji ne pripada datom sistemu. Naprimjer:
  • Slovo "G" u HEX (dozvoljeno je samo A-F).
  • Cifru "2" u BIN (dozvoljeno je samo 0 i 1).
  • Cifru "8" u OCT (dozvoljeno je samo 0-7).
Ispravite grešku u kucanju i izračunavanje će se nastaviti.