Conversione fra basi numeriche (binario, ottale, decimale, esadecimale)

Converte un numero fra base due, base otto, base dieci e base sedici. Anche gli interi molto grandi sono convertiti senza errori grazie al tipo BigInt.

Che cos'è un convertitore di basi numeriche? Il rapporto fra binario, ottale, decimale ed esadecimale

Un convertitore di basi numeriche permette di inserire un valore in base due, otto, dieci o sedici e di vedere subito il valore corrispondente nelle altre tre basi. Nella programmazione, nelle reti e nell'elettronica capita spesso di dover trattare lo stesso valore in basi diverse, e la conversione a mano diventa più soggetta a errori man mano che crescono le cifre. Questo strumento verifica quanto inserito e mostra immediatamente tutte le conversioni, così non serve una calcolatrice a parte né una tabella di conversione stampata.

Il principio della conversione fra basi è semplice: ogni base rappresenta la stessa quantità come somma di "valore della cifra per il suo peso posizionale". Il numero 255, scritto in base dieci, diventa 11111111 in binario, 377 in ottale e FF in esadecimale: cambia la notazione, ma la quantità indicata resta sempre la stessa. Lo strumento esegue i calcoli con BigInt, un tipo intero a precisione illimitata, invece del comune tipo Number di JavaScript, così anche gli interi molto grandi, oltre due elevato alla cinquantatreesima, vengono convertiti con piena esattezza e senza errori di arrotondamento.

Come si usa il convertitore di basi numeriche

  1. Scegliete la base del valore da inserire Indicate se il numero che state per digitare è scritto in binario, ottale, decimale o esadecimale.
  2. Inserite il valore Digitate soltanto i caratteri ammessi per la base scelta. Per l'esadecimale sono ammesse anche le lettere da A a F.
  3. Controllate che non vi siano caratteri non validi Se il valore contiene un carattere non ammesso per la base scelta, compare un messaggio di errore che segnala di correggere l'inserimento.
  4. Consultate i risultati della conversione Senza bisogno di premere alcun pulsante, le rappresentazioni in binario, ottale, decimale ed esadecimale compaiono tutte automaticamente.
  5. Convertite altri valori Cambiando il valore o la base scelta, i risultati vengono ricalcolati all'istante, così potete verificare più numeri uno dopo l'altro.

Consigli per sfruttarlo al meglio

  • Per l'esadecimale non anteponete prefissi come `0x`: inserite soltanto le cifre, per esempio `FF`. Le maiuscole e le minuscole sono entrambe riconosciute.
  • Poiché il calcolo si serve del tipo BigInt, lo strumento converte con esattezza anche gli interi tanto grandi da produrre errori con il tipo Number di JavaScript, cioè oltre due elevato alla cinquantatreesima.
  • Torna utile con i codici di colore esadecimali usati nella programmazione, come `#FF0000`, e ogni volta che serve la notazione binaria per verificare un'operazione sui bit.
  • L'ottale è la notazione consueta per i permessi sui file dei sistemi Unix, per esempio `755`. Confrontandolo con il decimale e il binario si comprende meglio il significato dei permessi.

Situazioni in cui usare il convertitore di basi numeriche

Verificare esercizi ed esami di programmazione

Dopo aver svolto un esercizio di conversione fra basi assegnato in un corso di informatica o in un esame di certificazione, controllate subito se il calcolo fatto a mano era corretto.

Esaminare maschere di bit e codici di colore

Convertite in binario un codice di colore esadecimale, come `#FF0000`, oppure un valore usato in un'operazione sui bit, per vedere con esattezza quali bit risultano attivi.

Preparare calcoli su indirizzi di rete e sottoreti

Convertite in binario un indirizzo IP o una maschera di sottorete come primo passo per individuare il confine fra la parte di rete e quella di host.

Comprendere i permessi sui file di Unix

Convertite in binario un valore di permessi in ottale, come nel comando `chmod 755`, per vedere in modo visivo come si combinano i permessi di lettura, scrittura ed esecuzione per ciascuna categoria di utente.

Fare il debug di sistemi che trattano interi molto grandi

Quando un registro o un dump di memoria mostra in esadecimale un valore grande, come un intero a 64 bit, convertitelo in decimale senza errori di arrotondamento per farvi un'idea intuitiva della sua grandezza.

Glossario delle basi numeriche

Binario (base due)
Un sistema numerico che rappresenta i valori usando soltanto le cifre 0 e 1. All'interno di un elaboratore questi due stati corrispondono di norma a una tensione alta o bassa, oppure a un interruttore acceso o spento.
Ottale (base otto)
Un sistema numerico che usa le otto cifre da 0 a 7. Poiché tre cifre binarie corrispondono esattamente a una cifra ottale, era diffuso sui primi elaboratori e sopravvive ancora nei permessi sui file dei sistemi Unix.
Decimale (base dieci)
Il sistema numerico che usiamo nella vita quotidiana, composto dalle dieci cifre da 0 a 9. Lo strumento accetta il decimale sia come base di partenza sia come uno degli esiti della conversione.
Esadecimale (base sedici)
Un sistema numerico che usa sedici simboli, le cifre da 0 a 9 e le lettere da A a F. Poiché quattro cifre binarie corrispondono esattamente a una cifra esadecimale, si usa spesso per rappresentare in forma compatta e leggibile indirizzi di memoria, codici di colore e altri valori interni degli elaboratori.
Base (radice)
Il numero di cifre distinte che un sistema numerico impiega per una singola posizione. Il binario ha base due, l'ottale base otto, il decimale base dieci e l'esadecimale base sedici.
BigInt
Un tipo di dato di JavaScript che rappresenta interi senza limiti sul numero di cifre. I valori del tipo Number comune perdono precisione oltre due elevato alla cinquantatreesima, mentre BigInt converte numeri di qualunque grandezza con piena esattezza.
Peso posizionale
Il contributo che una cifra apporta al valore complessivo in base alla propria posizione. In base dieci la posizione delle centinaia ha peso cento; la conversione fra basi consiste nel moltiplicare ogni cifra per il proprio peso posizionale e sommare i risultati.
Maschera di bit
Uno schema binario usato per isolare o modificare posizioni di bit specifiche all'interno di un valore. Convertire in binario un valore esadecimale o un codice di colore rende molto più semplice individuare quali singoli bit risultano attivi.

Domande frequenti

Sono modi diversi di rappresentare i numeri, distinti dalla base adottata. La base dieci, che ci è familiare, usa le dieci cifre da 0 a 9; la base due usa soltanto 0 e 1 ed è quella dell'elaborazione interna degli elaboratori; la base otto usa le cifre da 0 a 7 e la base sedici le cifre da 0 a 9 più le lettere da A a F: queste ultime ricorrono di frequente nell'informatica e nell'elettronica.

Perché una cifra esadecimale esprime esattamente quattro bit, cioè quattro cifre binarie: la notazione esadecimale comprime dunque i dati binari in una forma leggibile per una persona. Si usa largamente là dove si trattano sequenze di bit interne alla macchina: indirizzi di memoria, codici di colore nella forma #RRGGBB, codifiche dei caratteri.

Con le calcolatrici comuni e con il tipo Number di JavaScript possono comparire errori per gli interi che superano due elevato alla cinquantatreesima, cioè circa novecentomila miliardi. Questo strumento calcola invece con BigInt, il tipo intero a precisione illimitata, e converte quindi con esattezza numeri di qualunque grandezza.

Soprattutto nella notazione dei permessi sui file dei sistemi Unix, come Linux e macOS, per esempio nel comando `chmod 755`. Ogni cifra esprime la combinazione dei permessi di lettura, che vale quattro, scrittura, che vale due, ed esecuzione, che vale uno: una sola cifra ottale riassume così i permessi del proprietario, del gruppo e degli altri utenti.
Tool-kun

A proposito — perché gli elaboratori funzionano in binario

Gli elaboratori si fondano sul binario, cioè su 0 e 1, perché i circuiti elettronici distinguono con stabilità due soli stati: tensione alta o bassa, interruttore acceso o spento. Costruire circuiti capaci di riconoscere con precisione dieci livelli di tensione, come richiederebbe la base dieci, sarebbe assai più difficile che trattarne due: la maggiore resistenza al rumore e la semplicità dei componenti sono le ragioni pratiche per cui oggi quasi tutte le macchine adottano il binario.

L'esadecimale è prezioso nella programmazione per una proprietà matematica: quattro cifre binarie, da 0000 a 1111, corrispondono esattamente a una cifra esadecimale, da 0 a F. Un byte, cioè otto bit, si scrive così con due sole cifre esadecimali, da 00 a FF, comprimendo in una lunghezza leggibile un'informazione che in binario ne richiederebbe otto.

L'ottale si diffuse invece per ragioni storiche: i primi elaboratori, come il PDP-8 degli anni Sessanta, adottavano ampiezze di parola multiple di tre, come dodici o trentasei bit, e in quel contesto la corrispondenza con il binario risultava più agevole in base otto. Quando le macchine passarono a lavorare prevalentemente su unità di otto, sedici e trentadue bit, cioè multipli di quattro, l'esadecimale divenne più comodo e oggi prevale. Restano però ambiti in cui l'ottale è tuttora in uso, come i permessi sui file di Unix.