Konverzija brojevnih sistema sa podrškom za negativne brojeve

Svet računara radi na nulama i jedinicama, ali ljudi razmišljaju u deseticama. A programeri? Oni moraju da razumeju sve između toga. Bilo da debugujete niskonivou kod, podešavate boje u CSS-u, izračunavate IP maske ili rešavate zadatke iz informatike, nailazite na potrebu za konverzijom brojeva između sistema.

Uobičajeni kalkulatori u Windows-u ili na mobilnim telefonima su često spori i nezgrapni. Naš inteligentni konverter brojevnih sistema dizajniran je od strane programera za programere. Nudi trenutnu konverziju u realnom vremenu, podršku za ekstremno velike brojeve i, kao jedan od retkih online alata, ispravno rukuje negativnim brojevima u binarnom obliku.

Šta ovaj konverter brojevnih sistema može da uradi?

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

  1. Reaktivnost u realnom vremenu: Nema dugmeta “Izračunaj”. Počnite da kucate u HEX polje i odmah ćete videti kako se menjaju BIN i DEC.
  2. Podrška za negativne brojeve (Signed Integers): Većina online konvertera ne uspe kada ukucate -5. Mi ne. Zahvaljujući izboru bitne dubine (8, 16, 32, 64 bita), simuliramo precizno ponašanje procesora koristeći takozvani dvojni komplement (Two’s Complement).
  3. Čitljivost binarnog koda: Gledanje u 1110101011011110 je naporno za oči. Naš alat može automatski da formatira izlaz na 4 bita (nibbles) u 1110 1010 1101 1110, što radikalno smanjuje greške prilikom prepisivanja.
  4. Podrška za BigInt: Treba li da konvertujete 64-bitni broj ili heš? Standardni JavaScript se zaustavlja na broju $2^{53}$. Naš mehanizam može da obradi brojeve proizvoljne dužine u “Unsigned” režimu.

Vodič kroz brojevne sisteme: Kada koji koristiti?

1. Decimalni sistem (DEC - Decimal)

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

2. Binarni sistem (BIN - Binary)

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

3. Heksadecimalni sistem (HEX - Hexadecimal)

  • Osnova: 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 ceo bajt.
  • Primeri:
    • Boje na vebu: #FF5733 (Crvena, Zelena, Plava).
    • MAC adrese: 00:1A:2B:3C:4D:5E.
    • Ispisi memorije (Memory dumps).

4. Oktalni sistem (OCT - Octal)

  • Osnova: 8 (cifre 0-7)
  • Upotreba: Istorijski stariji računari, danas posebno Linux dozvole (chmod).
  • Primer: Komanda chmod 755 postavlja dozvole rwx-rx-rx (čitanje, pisanje, izvršavanje).

Kako ispravno raditi sa negativnim brojevima?

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

Međutim, rezultat konverzije negativnog broja zavisi od toga koliko je bitova rezervisano za varijablu. Zato u gornjem meniju možete pronaći prekidač Bitna dubina.

Primer: Kako izgleda broj -5?

Probajte sami u našem konverteru:

  1. Podesite dubinu na 8-bit.

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

    • Unesite u DEC: -5.
    • HEX rezultat: FFFB.
    • Objašnjenje: Pošto imamo više prostora, “jedinice” popunjavaju ostatak prostora levo.
  3. Podesite dubinu na Samo pozitivni (Unsigned).

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

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


Tabela brzih konverzija (Cheat Sheet)

Za brzu orijentaciju, ovde navodimo osnovne vrednosti koje bi svaki “IT-evac” trebalo da zna napamet.

Decimalno (DEC)Heksadecimalno (HEX)Binarno (BIN)Napomena
0000000Nula
1010001
100A1010
150F1111Maksimalna vrednost 4 bita (Nibble)
16100001 0000
1277F0111 1111Maks. vrednost za signed 8-bit (char)
255FF1111 1111Maks. vrednost za unsigned 8-bit (bajt)
65 535FFFFMaks. vrednost za 16-bit

Često postavljana pitanja (FAQ)

Šta znači "Bit Depth" (Bitna dubina)? Određuje koliko memorije je rezervisano za broj.
  • 8-bit: Vrednosti od 0 do 255 (ili od -128 do 127). Odgovara tipu char ili byte.
  • 16-bit: Vrednosti do 65 535. Odgovara tipu short.
  • 32-bit: Standardni int u modernim jezicima.
  • 64-bit: Za veoma 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), gde F ima vrednost 15. Broj FF se izračunava kao: $(15 \times 16^1) + (15 \times 16^0) = 240 + 15 = 255$.
Kako da pretvorim HEX boju u RGB? Boja na vebu, npr. #E05412, sastoji se od tri bajta: Crvena (E0), Zelena (54), Plava (12). Unesite u naš konverter "E0" u HEX polje -> dobićete 224. Unesite "54" -> dobićete 84. Unesite "12" -> dobić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 nije neophodno da ih pišete.
Zašto je moje polje pocrvenelo? To je funkcija validacije unosa. To znači da ste uneli znak koji ne pripada datom sistemu. Na primer:
  • 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.