Convertitore Basi Numeriche: BIN/HEX/DEC/OCT con Numeri Negativi

Il mondo dei computer funziona a zeri e uno, ma gli esseri umani pensano in decimi. E i programmatori? Loro devono capire tutto ciò che sta in mezzo. Che tu stia debuggando codice a basso livello, impostando colori in CSS, calcolando maschere IP o risolvendo problemi di informatica, ti imbatterai nella necessità di convertire i numeri tra diverse basi.

Le calcolatrici comuni su Windows o sui dispositivi mobili sono spesso lente e goffe. Il nostro convertitore intelligente di basi numeriche è stato progettato dagli sviluppatori per gli sviluppatori. Offre una conversione istantanea in tempo reale, supporto per numeri estremamente grandi e, come uno dei pochi strumenti online, gestisce correttamente i numeri negativi in formato binario.

Cosa può fare questo convertitore di basi numeriche?

Durante lo sviluppo di questo widget, ci siamo concentrati sulla risoluzione dei problemi più comuni per i programmatori:

  1. Reattività in tempo reale: Nessun pulsante “Calcola”. Inizia a digitare nel campo HEX e vedrai immediatamente come BIN e DEC cambiano.
  2. Supporto per numeri negativi (Signed Integers): La maggior parte dei convertitori online fallisce quando digiti -5. Noi no. Grazie alla selezione della profondità bit (8, 16, 32, 64 bit), simuliamo il comportamento preciso del processore utilizzando il cosiddetto complemento a due.
  3. Leggibilità del codice binario: Guardare 1110101011011110 è faticoso per gli occhi. Il nostro strumento può formattare automaticamente l’output ogni 4 bit (nibble) in 1110 1010 1101 1110, riducendo drasticamente gli errori durante la trascrizione.
  4. Supporto BigInt: Hai bisogno di convertire un numero a 64 bit o un hash? JavaScript standard si ferma al numero $2^{53}$. Il nostro motore gestisce numeri di lunghezza arbitraria in modalità “Unsigned”.

Guida ai sistemi numerici: quando usarne uno?

1. Sistema decimale (DEC - Decimal)

  • Base: 10 (cifre 0-9)
  • Uso: Vita quotidiana, finanza, conteggio di cicli nel codice.
  • Curiosità: I computer non lo capiscono, devono convertirlo in binario.

2. Sistema binario (BIN - Binary)

  • Base: 2 (cifre 0, 1)
  • Uso: Codice macchina, porte logiche, mascheramento di indirizzi IP.
  • Suggerimento: Ogni cifra rappresenta un bit. 8 bit formano 1 byte.

3. Sistema esadecimale (HEX - Hexadecimal)

  • Base: 16 (cifre 0-9, lettere A-F)
  • Uso: Notazione compatta del codice binario. Un singolo carattere HEX rappresenta esattamente 4 bit (nibble). Due caratteri (es. FF) rappresentano un intero byte.
  • Esempi:
    • Colori sul web: #FF5733 (Rosso, Verde, Blu).
    • Indirizzi MAC: 00:1A:2B:3C:4D:5E.
    • Dump di memoria (Memory dumps).

4. Sistema ottale (OCT - Octal)

  • Base: 8 (cifre 0-7)
  • Uso: Storicamente computer più vecchi, oggi principalmente permessi Linux (chmod).
  • Esempio: Il comando chmod 755 imposta i permessi rwx-rx-rx (lettura, scrittura, esecuzione).

Come lavorare correttamente con i numeri negativi?

Questa è la funzione più avanzata del nostro convertitore. Nella memoria del computer non esiste un segno “meno”. Per memorizzare un numero negativo, il computer utilizza più spesso il metodo del complemento a due (Two’s Complement).

Tuttavia, il risultato della conversione di un numero negativo dipende da quanti bit sono stati allocati per la variabile. Per questo motivo, nella barra superiore troverai l’interruttore Profondità bit.

Esempio: Come appare il numero -5?

Prova tu stesso nel nostro convertitore:

  1. Imposta la larghezza a 8-bit.

    • Inserisci in DEC: -5.
    • Risultato HEX: FB.
    • Risultato BIN: 1111 1011.
    • Spiegazione: $256 - 5 = 251$ (che è FB).
  2. Imposta la larghezza a 16-bit.

    • Inserisci in DEC: -5.
    • Risultato HEX: FFFB.
    • Spiegazione: Dato che abbiamo più spazio, gli “uno” riempiono il resto dello spazio a sinistra.
  3. Imposta la larghezza a Solo positivi (Unsigned).

    • Se inserisci -5, il campo diventerà rosso. Questa modalità non supporta i numeri negativi, poiché richiederebbe infiniti uno.

Suggerimento pro: Se lavori con colori o indirizzi IP, usa sempre la modalità “Solo positivi”. Se stai risolvendo esercizi di C/C++ o assembler, passa a 32-bit o 64-bit.


Tabella di conversione rapida (Cheat Sheet)

Per un orientamento rapido, elenchiamo qui i valori di base che ogni “esperto IT” dovrebbe conoscere a memoria.

Decimale (DEC)Esadecimale (HEX)Binario (BIN)Nota
0000000Zero
1010001
100A1010
150F1111Valore massimo di 4 bit (Nibble)
16100001 0000
1277F0111 1111Valore max per signed 8-bit (char)
255FF1111 1111Valore max per unsigned 8-bit (byte)
65 535FFFFValore max per 16-bit

Domande frequenti (FAQ)

Cosa significa "Profondità bit" (Bit Depth)? Determina quanta memoria abbiamo riservato per un numero.
  • 8-bit: Valori da 0 a 255 (o da -128 a 127). Corrisponde al tipo char o byte.
  • 16-bit: Valori fino a 65 535. Corrisponde al tipo short.
  • 32-bit: Standard int nei linguaggi moderni.
  • 64-bit: Per numeri molto grandi (long long, BigInt).
Perché il numero 255 in HEX si scrive FF? Il sistema esadecimale ha 16 cifre (0-9 e A-F), dove F ha un valore di 15. Il numero FF si calcola come: $(15 \times 16^1) + (15 \times 16^0) = 240 + 15 = 255$.
Come converto un colore HEX in RGB? Un colore sul web, ad esempio #E05412, è composto da tre byte: Rosso (E0), Verde (54), Blu (12). Inserisci nel nostro convertitore "E0" nel campo HEX -> otterrai 224. Inserisci "54" -> otterrai 84. Inserisci "12" -> otterrai 18. Il risultato è rgb(224, 84, 18).
Cosa significano i prefissi 0x, 0b o 0o? Per distinguere le basi, i programmatori usano prefissi:
  • 0x = Esadecimale (es. 0xFF)
  • 0b = Binario (es. 0b101)
  • 0o = Ottale (es. 0o755)
Il nostro convertitore riconosce queste notazioni, ma non è obbligatorio scriverle.
Perché il campo è diventato rosso? Questa è una funzione di validazione dell'input. Significa che hai inserito un carattere che non appartiene al sistema numerico dato. Ad esempio:
  • La lettera "G" in HEX (sono ammesse solo A-F).
  • La cifra "2" in BIN (sono ammesse solo 0 e 1).
  • La cifra "8" in OCT (sono ammesse solo 0-7).
Correggi l'errore di battitura e il calcolo continuerà.