Come funziona la conversione di base
Ogni sistema numerico posizionale rappresenta un valore come somma di cifre moltiplicate per potenze della base. Cambiare base significa riscrivere lo stesso valore rispetto a una serie di potenze diversa.
- Valida l'alfabeto di input. Ogni base accetta un insieme specifico di cifre. Il binario accetta 0 e 1; l'ottale accetta 0-7; il decimale accetta 0-9; l'esadecimale accetta 0-9 e A-F. Un carattere fuori dall'alfabeto scelto mostra un errore inline prima che avvenga qualsiasi conversione.
- Analizza il valore. Per valori che rientrano in un Number JavaScript (fino a 2^53-1) lo strumento chiama
parseInt(text, base). Oltre tale limite ricorre aBigIntin modo che la conversione rimanga esatta per interi arbitrariamente grandi. - Renderizza in ogni base di destinazione. Il valore analizzato viene convertito in ciascuna base di output tramite
Number.prototype.toString(base)oBigInt.prototype.toString(base). I quattro pannelli standard (binario, ottale, decimale, hex) e il pannello con base personalizzata si aggiornano insieme. - Applica la formattazione. Un'opzione per il prefisso aggiunge 0b, 0o o 0x all'inizio dell'output binario, ottale ed esadecimale. Il raggruppamento delle cifre inserisce un trattino basso ogni quattro cifre binarie e ogni due cifre hex. Un'opzione per le maiuscole sceglie lettere maiuscole o minuscole per A-F.
- Sincronizzazione live tra pannelli. La modifica di qualsiasi pannello attiva una riconversione con debounce di 100 ms che aggiorna gli altri pannelli. Il pannello in cui si sta digitando è trattato come fonte di verità a ogni pressione di tasto.
Perché usare un convertitore di basi
- Lettura di memory dump. Debugger, disassembler e visualizzatori di core dump mostrano indirizzi e valori di registro in hex. Tradurli in decimale li rende confrontabili con conteggi, dimensioni e offset riportati altrove nella stessa traccia.
- Lavoro con codici colore. CSS, strumenti di design e formati immagine esprimono i colori in triplette hex come #d2511a. Convertire ogni coppia in decimale trasforma lo stesso colore nella forma rgb(210, 81, 26) che il tuo selettore di colori o il verificatore di accessibilità si aspetta.
- Decodifica dei permessi file. I valori chmod di Unix sono scritti in ottale: 755 significa rwxr-xr-x una volta che si traduce ogni cifra ottale nei suoi tre bit binari. Il convertitore mostra quella mappatura in un solo passaggio, senza dover consultare una man page.
- Debug dei bit flag. I protocolli di rete, le syscall del kernel e i registri hardware comprimono molti flag booleani in un singolo intero. Leggere l'intero in binario mostra immediatamente quali bit sono impostati, il che è essenziale quando si cerca di capire perché un flag non ha effetto.
Applicazioni comuni
La conversione di base è presente nel lavoro quotidiano di sviluppatori, esperti di sicurezza e tecnici hardware ogni volta che un numero è più di un semplice conteggio.
- Firmware embedded: leggi un hex dump da una sonda JTAG, individua l'indirizzo di una funzione e scrivi un comando breakpoint usando l'offset decimale accettato dal tuo script di debug.
- Sicurezza di rete: analizza una netmask a 32 bit stampata in decimale separato da punti riconvertendola in binario per contare la lunghezza del prefisso, poi scrivi la forma CIDR per una regola ACL.
- Sfide CTF e crittografia: alterna tra hex, decimale e binario mentre confronti un frammento di chiave trapelata con un candidato in chiaro sotto XOR.
Un esempio pratico
Digita 255 nel pannello decimale. Il pannello hex si aggiorna a FF (o 0xFF con il prefisso attivo), quello binario a 11111111 (raggruppato come 1111_1111) e quello ottale a 377. Imposta la radice del pannello personalizzato a 36 e lo stesso valore appare come 73. Digita un valore molto più grande come 123456789012345678901234567890 nel pannello decimale; il pannello hex usa il percorso BigInt e mostra 18EE90FF6C373E0EE4E3F0AD2.
FAQ
Che cos'è una base numerica?
Una base numerica, o radice, indica quante cifre distinte usa un sistema posizionale prima di effettuare un riporto alla posizione successiva. Il decimale (base 10) usa 0-9; il binario (base 2) usa solo 0 e 1; l'esadecimale (base 16) usa 0-9 più A-F. Il valore di un numero non cambia quando si cambia base — cambia solo il modo in cui le sue cifre sono scritte e raggruppate.
Perché usare l'esadecimale nella programmazione?
Una cifra hex corrisponde esattamente a quattro bit binari, quindi due cifre hex coprono un byte e otto cifre hex coprono una parola a 32 bit. Questo rende l'esadecimale la forma più compatta e leggibile per indirizzi di memoria, contenuti di registro, triplette di colori e chiavi crittografiche. Leggere 0xFF è più rapido che leggere 11111111, e il pattern di bit è subito disponibile quando serve.
Posso convertire oltre la base 36?
Questo strumento si ferma alla base 36 perché è il limite superiore delle API JavaScript native parseInt e toString, che accettano 0-9 seguito da A-Z come alfabeto di cifre. Le basi 37-62 sono possibili con un alfabeto personalizzato (Base58 usato negli indirizzi Bitcoin è un esempio) ma sono previste come strumento separato perché ogni base superiore necessita del proprio ordine canonico delle cifre.
Gestisce numeri negativi e in virgola mobile?
Gli interi negativi sono mostrati con un segno meno iniziale in ogni base, lo stesso comportamento di Number.prototype.toString. La rappresentazione in complemento a due per una larghezza di bit scelta (8, 16, 32, 64) è una vista separata che prevediamo di aggiungere. Anche la conversione di base in virgola mobile è fuori dal campo di questa versione; lo strumento gestisce solo valori interi.
La conversione di base è un'operazione semplice che ricorre continuamente nel lavoro su firmware, sicurezza e grafica. Eseguirla in una scheda del browser, con le stesse primitive aritmetiche già presenti in Node e V8, mantiene il lavoro veloce e i dati sul tuo computer.