Convertor Sisteme Numerice: BIN/HEX/DEC/OCT cu Numere Negative

Lumea calculatoarelor funcționează pe zerouri și unu, dar oamenii gândesc în zecimale. Și programatorii? Ei trebuie să înțeleagă totul între ele. Fie că depanați cod de nivel scăzut, setați culori în CSS, calculați măști IP sau rezolvați sarcini de informatică, vă confruntați cu necesitatea de a converti numere între sisteme.

Calculatoarele obișnuite din Windows sau de pe mobil sunt adesea lente și greoaie. Convertorul nostru inteligent de sisteme numerice a fost conceput de dezvoltatori pentru dezvoltatori. Oferă conversie instantanee în timp real, suport pentru numere extrem de mari și, ca unul dintre puținele instrumente online, gestionează corect numerele negative în formă binară.

Ce poate face acest convertor de sisteme numerice?

În dezvoltarea acestui widget, ne-am concentrat pe rezolvarea celor mai frecvente probleme ale programatorilor:

  1. Reactivitate în timp real: Fără buton “Calculează”. Începeți să tastați în câmpul HEX și veți vedea imediat cum se modifică BIN și DEC.
  2. Suport pentru numere negative (Signed Integers): Majoritatea convertoarelor online eșuează când tastați -5. Noi nu. Datorită opțiunii de lățime de biți (8, 16, 32, 64 biți), simulăm comportamentul precis al procesorului folosind complementul față de doi.
  3. Lizibilitatea codului binar: Privitul la 1110101011011110 este obositor pentru ochi. Instrumentul nostru poate formata automat ieșirea în grupuri de 4 biți (nibbles) ca 1110 1010 1101 1110, ceea ce reduce drastic erorile la transcriere.
  4. Suport BigInt: Aveți nevoie să convertiți un număr pe 64 de biți sau un hash? JavaScript-ul standard se oprește la numărul $2^{53}$. Motorul nostru poate gestiona numere de orice lungime în modul “Unsigned”.

Ghid pentru sisteme numerice: Când să le utilizați?

1. Sistemul zecimal (DEC - Decimal)

  • Bază: 10 (cifrele 0-9)
  • Utilizare: Viața de zi cu zi, finanțe, numărarea buclelor în cod.
  • Interesant: Calculatoarele nu-l înțeleg, trebuie să-l convertească în binar.

2. Sistemul binar (BIN - Binary)

  • Bază: 2 (cifrele 0, 1)
  • Utilizare: Cod mașină, porți logice, mascarea adreselor IP.
  • Sfat: Fiecare cifră reprezintă un bit. 8 biți formează 1 octet (Byte).

3. Sistemul hexazecimal (HEX - Hexadecimal)

  • Bază: 16 (cifrele 0-9, literele A-F)
  • Utilizare: Reprezentare compactă a codului binar. Un caracter HEX reprezintă exact 4 biți (nibble). Două caractere (de exemplu, FF) reprezintă un octet întreg.
  • Exemple:
    • Culori web: #FF5733 (Roșu, Verde, Albastru).
    • Adrese MAC: 00:1A:2B:3C:4D:5E.
    • Dump-uri de memorie (Memory dumps).

4. Sistemul octal (OCT - Octal)

  • Bază: 8 (cifrele 0-7)
  • Utilizare: Calculatoare mai vechi din punct de vedere istoric, astăzi în special pentru permisiuni Linux (chmod).
  • Exemplu: Comanda chmod 755 setează permisiunile rwx-rx-rx (citire, scriere, execuție).

Cum să lucrați corect cu numerele negative?

Aceasta este cea mai avansată funcționalitate a convertorului nostru. În memoria computerului nu există semnul “minus”. Pentru a stoca un număr negativ, calculatorul utilizează cel mai adesea metoda complementului față de doi (Two’s Complement).

Totuși, rezultatul conversiei unui număr negativ depinde de câți biți sunt alocați variabilei. De aceea, în bara de sus veți găsi comutatorul Lățime de biți.

Exemplu: Cum arată numărul -5?

Încercați singuri în convertorul nostru:

  1. Setați lățimea la 8-bit.

    • Introduceți în DEC: -5.
    • Rezultat HEX: FB.
    • Rezultat BIN: 1111 1011.
    • Explicație: $256 - 5 = 251$ (care este FB).
  2. Setați lățimea la 16-bit.

    • Introduceți în DEC: -5.
    • Rezultat HEX: FFFB.
    • Explicație: Deoarece avem mai mult spațiu, “unul” umple restul spațiului din stânga.
  3. Setați lățimea la Doar pozitive (Unsigned).

    • Dacă introduceți -5, câmpul devine roșu. Acest mod nu suportă numere negative, deoarece ar necesita un număr infinit de unuri.

Sfat Pro: Dacă lucrați cu culori sau adrese IP, utilizați întotdeauna modul “Doar pozitive”. Dacă rezolvați sarcini în C/C++ sau limbaj de asamblare, comutați la 32-bit sau 64-bit.


Tabel de conversii rapide (Cheat Sheet)

Pentru o orientare rapidă, iată valorile de bază pe care fiecare “IT-ist” ar trebui să le știe pe de rost.

Zecimal (DEC)Hexazecimal (HEX)Binar (BIN)Notă
0000000Zero
1010001
100A1010
150F1111Valoare maximă a 4 biți (Nibble)
16100001 0000
1277F0111 1111Valoare maximă pentru 8-bit semnat (char)
255FF1111 1111Valoare maximă pentru 8-bit nesemnat (octet)
65 535FFFFValoare maximă pentru 16-bit

Întrebări frecvente (FAQ)

Ce înseamnă "Bit Depth" (Lățime de biți)? Determină câtă memorie este alocată pentru un număr.
  • 8-bit: Valori de la 0 la 255 (sau de la -128 la 127). Corespunde tipului char sau byte.
  • 16-bit: Valori până la 65 535. Corespunde tipului short.
  • 32-bit: int standard în limbajele moderne.
  • 64-bit: Pentru numere foarte mari (long long, BigInt).
De ce numărul 255 se scrie FF în HEX? Sistemul hexazecimal are 16 cifre (0-9 și A-F), unde F are valoarea 15. Numărul FF se calculează ca: $(15 \times 16^1) + (15 \times 16^0) = 240 + 15 = 255$.
Cum convertesc o culoare HEX în RGB? O culoare pe web, de exemplu #E05412, este formată din trei octeți: Roșu (E0), Verde (54), Albastru (12). Introduceți "E0" în câmpul HEX din convertorul nostru -> veți obține 224. Introduceți "54" -> veți obține 84. Introduceți "12" -> veți obține 18. Rezultatul este rgb(224, 84, 18).
Ce înseamnă prefixul 0x, 0b sau 0o? Pentru a distinge sistemele, programatorii folosesc prefixe:
  • 0x = Hexazecimal (ex. 0xFF)
  • 0b = Binar (ex. 0b101)
  • 0o = Octal (ex. 0o755)
Convertorul nostru recunoaște aceste notații, dar nu este obligatoriu să le scrieți.
De ce mi s-a înroșit câmpul? Aceasta este o funcție de validare a intrării. Înseamnă că ați introdus un caracter care nu aparține sistemului respectiv. De exemplu:
  • Litera "G" în HEX (sunt permise doar A-F).
  • Cifra "2" în BIN (sunt permise doar 0 și 1).
  • Cifra "8" în OCT (sunt permise doar 0-7).
Corectați greșeala și calculul va continua.