Pretvorba Številskih Sistemov (BIN/HEX/DEC/OCT)

Svet računalnikov deluje na ničlah in enkah, ljudje pa razmišljamo v deseticah. Kaj pa programerji? Ti morajo razumeti vse vmes. Ne glede na to, ali odpravljate napake v nizkonivojski kodi, nastavljate barve v CSS, izračunavate maske IP ali rešujete naloge iz informatike, se srečujete s potrebo po pretvarjanju števil med sistemi.

Običajni kalkulatorji v sistemu Windows ali na mobilnih napravah so pogosto počasni in nerodni. Naš inteligentni pretvornik številskih sistemov so zasnovali razvijalci za razvijalce. Ponuja takojšnjo pretvorbo v realnem času, podporo za izjemno velika števila in kot eno redkih spletnih orodij pravilno obravnava negativna števila v dvojiški obliki.

Kaj zmore ta pretvornik številskih sistemov?

Pri razvoju tega pripomočka smo se osredotočili na reševanje najpogostejših težav programerjev:

  1. Reaktivnost v realnem času: Ni gumba “Izračunaj”. Začnite tipkati v polje HEX in takoj boste videli, kako se spreminjata BIN in DEC.
  2. Podpora negativnim številom (Signed Integers): Večina spletnih pretvornikov odpove, ko vpišete -5. Mi ne. Z izbiro bitne širine (8, 16, 32, 64 bitov) simuliramo natančno delovanje procesorja z uporabo t.i. dvojiškega komplementa.
  3. Berljivost dvojiške kode: Gledanje 1110101011011110 je naporno za oči. Naše orodje lahko samodejno formatira izhod po 4 bitih (nibbles) v 1110 1010 1101 1110, kar drastično zmanjšuje napake pri prepisovanju.
  4. Podpora BigInt: Potrebujete pretvoriti 64-bitno število ali zgoščeno vrednost (hash)? Standardni JavaScript se konča pri številu $2^{53}$. Naš pogon obravnava poljubno dolga števila v načinu “Unsigned”.

Vodnik po številskih sistemih: Kdaj uporabiti katerega?

1. Desetiški sistem (DEC - Decimal)

  • Osnova: 10 (številke 0-9)
  • Uporaba: Vsakdanje življenje, finance, štetje zank v kodi.
  • Zanimivost: Računalniki ga ne razumejo, pretvoriti ga morajo v dvojiški sistem.

2. Dvojiški sistem (BIN - Binary)

  • Osnova: 2 (številki 0, 1)
  • Uporaba: Strojna koda, logična vrata, maskiranje IP naslovov.
  • Nasvet: Vsaka števka predstavlja en bit. 8 bitov tvori 1 bajt (Byte).

3. Šestnajstiški sistem (HEX - Hexadecimal)

  • Osnova: 16 (številke 0-9, črke A-F)
  • Uporaba: Kompaktni zapis dvojiške kode. En znak HEX predstavlja natanko 4 bite (nibble). Dva znaka (npr. FF) predstavljata cel bajt.
  • Primeri:
    • Barve na spletu: #FF5733 (rdeča, zelena, modra).
    • MAC naslovi: 00:1A:2B:3C:4D:5E.
    • Izpisi pomnilnika (Memory dumps).

4. Osmiški sistem (OCT - Octal)

  • Osnova: 8 (številke 0-7)
  • Uporaba: Zgodovinsko starejši računalniki, danes predvsem za dovoljenja Linuxa (chmod).
  • Primer: Ukaz chmod 755 nastavi dovoljenja rwx-rx-rx (branje, pisanje, izvajanje).

Kako pravilno delati z negativnimi števili?

To je najnaprednejša funkcija našega pretvornika. V računalniškem pomnilniku ne obstaja znak “minus”. Da bi računalnik shranil negativno število, najpogosteje uporablja metodo dvojiškega komplementa (Two’s Complement).

Vendar je rezultat pretvorbe negativnega števila odvisen od tega, koliko bitov je rezerviranih za spremenljivko. Zato v zgornji vrstici najdete stikalo Bitna globina.

Primer: Kako izgleda število -5?

Poskusite sami v našem pretvorniku:

  1. Nastavite bitno globino na 8-bit.

    • Vnesite v DEC: -5.
    • Rezultat HEX: FB.
    • Rezultat BIN: 1111 1011.
    • Razlaga: $256 - 5 = 251$ (kar je FB).
  2. Nastavite bitno globino na 16-bit.

    • Vnesite v DEC: -5.
    • Rezultat HEX: FFFB.
    • Razlaga: Ker imamo več prostora, “enke” zapolnijo preostanek prostora na levi.
  3. Nastavite bitno globino na Samo pozitivna (Unsigned).

    • Če vnesete -5, se polje obarva rdeče. Ta način ne podpira negativnih števil, saj bi zahteval neskončno veliko enic.

Profi nasvet: Če delate z barvami ali IP naslovi, vedno uporabite način “Samo pozitivna”. Če rešujete naloge za C/C++ ali asembler, preklopite na 32-bitno ali 64-bitno.


Tabela hitrih pretvorb (Cheat Sheet)

Za hitro orientacijo tukaj navajamo osnovne vrednosti, ki bi jih moral vsak “IT-jevec” poznati na pamet.

Desetiško (DEC)Šestnajstiško (HEX)Dvojiško (BIN)Opomba
0000000Nič
1010001
100A1010
150F1111Maksimalna vrednost 4 bitov (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

Pogosto zastavljena vprašanja (FAQ)

Kaj pomeni "Bit Depth" (Bitna globina)? Določa, koliko pomnilnika je rezerviranega za številko.
  • 8-bit: Vrednosti od 0 do 255 (ali -128 do 127). Ustreza tipu char ali byte.
  • 16-bit: Vrednosti do 65 535. Ustreza tipu short.
  • 32-bit: Standardni int v sodobnih jezikih.
  • 64-bit: Za zelo velika števila (long long, BigInt).
Zakaj se število 255 v HEX zapiše kot FF? Šestnajstiški sistem ima 16 številk (0-9 in A-F), kjer ima F vrednost 15. Število FF se izračuna kot: $(15 \times 16^1) + (15 \times 16^0) = 240 + 15 = 255$.
Kako pretvorim HEX barvo v RGB? Barva na spletu, npr. #E05412, je sestavljena iz treh bajtov: rdeča (E0), zelena (54), modra (12). V naš pretvornik vnesite "E0" v polje HEX -> dobite 224. Vnesite "54" -> dobite 84. Vnesite "12" -> dobite 18. Rezultat je rgb(224, 84, 18).
Kaj pomeni predpona 0x, 0b ali 0o? Da bi programerji razlikovali sisteme, se uporabljajo predpone:
  • 0x = Šestnajstiški (npr. 0xFF)
  • 0b = Dvojiški (npr. 0b101)
  • 0o = Osmiški (npr. 0o755)
Naš pretvornik ta označila prepozna, vendar jih ni treba vnašati.
Zakaj se je moje polje obarvalo rdeče? To je funkcija preverjanja veljavnosti vnosa. Pomeni, da ste vnesli znak, ki ne spada v določen sistem. Na primer:
  • Črka "G" v HEX (dovoljeno je samo A-F).
  • Številka "2" v BIN (dovoljeno je samo 0 in 1).
  • Številka "8" v OCT (dovoljeno je samo 0-7).
Popravite tipkarsko napako in izračun se bo nadaljeval.