Pretvarač Brojevnih Sustava s Negativnim Brojevima

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

Uobičajeni kalkulatori u sustavu Windows ili na mobilnom telefonu često su spori i nezgrapni. Naš inteligentni pretvarač brojevnih sustava dizajniran je od strane developera za developere. Nudi trenutnu konverziju u stvarnom vremenu, podršku za izuzetno velike brojeve i, kao jedan od rijetkih online alata, pravilno obrađuje negativne brojeve u binarnom obliku.

Što ovaj pretvarač brojevnih sustava može?

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

  1. Reaktivnost u stvarnom vremenu: Nema gumba “Izračunaj”. Počnite tipkati u HEX polje i odmah ćete vidjeti kako se mijenjaju BIN i DEC.
  2. Podrška za negativne brojeve (Signed Integers): Većina online pretvarača zakaže kada upišete -5. Mi ne. Zahvaljujući odabiru bitne širine (8, 16, 32, 64 bita), simuliramo precizno ponašanje procesora koristeći takozvani dvojični komplement.
  3. Čitljivost binarnog koda: Gledanje u 1110101011011110 je naporno. Naš alat automatski formatira izlaz nakon svaka 4 bita (nibbles) u 1110 1010 1101 1110, što radikalno smanjuje pogreške prilikom prepisivanja.
  4. BigInt podrška: Trebate pretvoriti 64-bitni broj ili hash? Standardni JavaScript završava kod broja $2^{53}$. Naš engine može obraditi brojeve proizvoljne duljine u “Unsigned” načinu.

Vodič kroz brojevne sustave: Kada koji koristiti?

1. Decimalni sustav (DEC - Decimal)

  • Baza: 10 (znamenke 0-9)
  • Upotreba: Svakodnevni život, financije, brojanje petlji u kodu.
  • Zanimljivost: Računala ga ne razumiju, moraju ga pretvarati u binarni.

2. Binarni sustav (BIN - Binary)

  • Baza: 2 (znamenke 0, 1)
  • Upotreba: Strojni kod, logička vrata, maskiranje IP adresa.
  • Savjet: Svaka znamenka predstavlja jedan bit. 8 bita čini 1 bajt (Byte).

3. Heksadecimalni sustav (HEX - Hexadecimal)

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

4. Oktalni sustav (OCT - Octal)

  • Baza: 8 (znamenke 0-7)
  • Upotreba: Povijesno starija računala, danas poglavito Linux dozvole (chmod).
  • Primjer: Naredba chmod 755 postavlja prava rwx-rx-rx (čitanje, pisanje, izvršavanje).

Kako ispravno raditi s negativnim brojevima?

Ovo je najnaprednija značajka našeg pretvarača. U računalnoj memoriji ne postoji znak “minus”. Da bi računalo pohranilo negativan broj, najčešće koristi metodu dvojičnog komplementa (Two’s Complement).

Međutim, rezultat pretvorbe negativnog broja ovisi o tome koliko je bitova rezervirano za varijablu. Zato ćete u gornjoj traci pronaći prekidač Bitna širina.

Primjer: Kako izgleda broj -5?

Isprobajte sami u našem pretvaraču:

  1. Postavite širinu na 8-bit.

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

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

    • Ako unesete -5, polje će pocrvenjeti. Ovaj način ne podržava negativne brojeve jer bi zahtijevao beskonačno mnogo jedinica.

Profesionalni savjet: Ako radite s bojama ili IP adresama, uvijek koristite način “Samo pozitivni”. Ako radite zadatke za C/C++ ili asembler, prebacite se na 32-bit ili 64-bit.


Tablica brzih pretvorbi (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 1111Maks. vrijednost za signed 8-bit (char)
255FF1111 1111Maks. vrijednost za unsigned 8-bit (bajt)
65 535FFFFMaks. vrijednost za 16-bit

Često postavljana pitanja (FAQ)

Što znači "Bit Depth" (Bitna širina)? Određuje koliko je memorije 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 sustav ima 16 znamenaka (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 "E0" u HEX polje našeg pretvarača -> dobit ćete 224. Unesite "54" -> dobit ćete 84. Unesite "12" -> dobit ćete 18. Rezultat je rgb(224, 84, 18).
Što znače prefiksi 0x, 0b ili 0o? Kako bi programeri razlikovali sustave, koriste se prefiksi:
  • 0x = Heksadecimalni (npr. 0xFF)
  • 0b = Binarni (npr. 0b101)
  • 0o = Oktalni (npr. 0o755)
Naš pretvarač prepoznaje ove oznake, ali ih nije potrebno pisati.
Zašto je polje pocrvenjelo? To je funkcija validacije unosa. To znači da ste unijeli znak koji ne pripada danom sustavu. Na primjer:
  • Slovo "G" u HEX (dopušteno je samo A-F).
  • Znamenku "2" u BIN (dopušteno je samo 0 i 1).
  • Znamenku "8" u OCT (dopušteno je samo 0-7).
Ispravite pogrešku pri upisu i izračun će se nastaviti.