Riscrivere lo Stesso Valore in Binario, Ottale, Decimale ed Esadecimale
Una base numerica (o “radice”) è quante cifre distinte usa un sistema numerico prima di riportare al valore di posizione successivo — il decimale usa 10 (0–9), il binario usa 2 (0–1), l’ottale usa 8 (0–7), e l’esadecimale usa 16 (0–9 poi A–F). Inserisci un numero intero in una qualsiasi di queste quattro basi, e questo calcolatore mostra lo stesso valore scritto in tutte e quattro contemporaneamente.
Il binario è come i computer rappresentano ogni valore internamente (ogni cifra è un “bit”); l’esadecimale è un’abbreviazione comune per il binario in programmazione (ogni cifra esadecimale rappresenta esattamente 4 cifre binarie, quindi è molto più compatto da leggere e digitare); l’ottale compare nei vecchi permessi dei file Unix e in alcuni contesti di basso livello. Il decimale è semplicemente il sistema base-10 di tutti i giorni.
La Formula
Ogni sistema numerico posizionale funziona allo stesso modo: ogni cifra viene moltiplicata per la base elevata alla sua potenza di posizione, poi sommata:
dove è la cifra alla posizione (contando da 0 dalla cifra più a destra). Convertire in una base diversa divide ripetutamente il valore decimale per la nuova base, registrando ogni resto — l’inverso della somma sopra.
Esempio Pratico
Convertendo il binario 11111111 nelle sue altre tre basi:
- Leggendo da destra a sinistra, ogni
1contribuisce con il suo valore di posizione: . - Decimale: 255.
- Ottale: dividendo 255 per 8 ripetutamente (255 ÷ 8 = 31 r7, 31 ÷ 8 = 3 r7, 3 ÷ 8 = 0 r3) si leggono i resti dal basso verso l’alto come 377.
- Esadecimale: 255 ÷ 16 = 15 r15, 15 ÷ 16 = 0 r15 — entrambi i resti sono 15 (F in esadecimale), dando FF.
Fattori Chiave da Considerare
- Un singolo byte (8 bit) può rappresentare esattamente 256 valori distinti — da 0 a 255 in decimale, o da 00 a FF in esadecimale. Questo è esattamente il motivo per cui 255/FF è un valore di riferimento così comune nell’informatica — è il valore massimo che un singolo byte può contenere, il che compare ovunque, dai canali colore RGB (0-255 per canale) fino a formati di rete e di file.
- L’ottale era storicamente più comune di quanto non sia oggi, in gran parte a causa delle vecchie dimensioni delle parole del computer. L’ottale (base 8) si mappa in modo pulito su gruppi di 3 cifre binarie, il che si adattava a computer costruiti attorno a dimensioni di parola divisibili per 3 bit — l’informatica moderna è passata in gran parte all’esadecimale (che si mappa su gruppi di 4 bit) poiché la maggior parte dell’hardware moderno usa dimensioni di parola divisibili per 4 e 8, sebbene l’ottale compaia ancora in contesti specifici come la notazione dei permessi dei file Unix (ad es. chmod 755).
- Un errore comune dei programmatori è confondere la base di un numero solo dal contesto. Le cifre “10” significano valori molto diversi a seconda della base — 10 in decimale, 2 in binario, 8 in ottale, 16 in esadecimale — motivo per cui i linguaggi di programmazione tipicamente richiedono un prefisso esplicito (come 0x per esadecimale o 0b per binario) per rimuovere qualsiasi ambiguità su quale base sia intesa.
- Qualsiasi numero intero può teoricamente essere rappresentato in QUALSIASI base, non solo queste quattro. Binario, ottale, decimale, ed esadecimale sono semplicemente le quattro basi con l’uso reale più comune nell’informatica e nella matematica quotidiana — lo stesso principio di notazione posizionale che usa questo calcolatore si estende a qualsiasi base, come base 3, base 20, o base 60 (la base di come tempo e angoli sono tradizionalmente divisi).
Errori Comuni
- Leggere un numero a base mista senza prefisso come decimale per impostazione predefinita. “10” significa dieci in decimale ma solo due in binario — controlla sempre (o indica) in quale base è scritto un numero prima di fare calcoli con esso.
- Supporre che gli zeri iniziali cambino il valore. Proprio come in decimale,
0011in binario è lo stesso valore di11— gli zeri iniziali contano solo per la formattazione a larghezza fissa (come mostrare un byte intero), non per il valore effettivo del numero. - Dimenticare che le cifre esadecimali sopra 9 usano lettere, non numeri a due cifre. Il
dieci esadecimale si scrive
A, non10— scrivere10in esadecimale significa in realtà sedici in decimale, una fonte comune di errori considerevoli. - Cercare di convertire direttamente un numero negativo. Come nota la FAQ sopra, i valori binari/esadecimali negativi dipendono da una larghezza di bit scelta e da una convenzione di complemento a due — non esiste un’unica conversione univoca come per i numeri interi non negativi.
Utile Sapere
- Stai lavorando con indirizzi di rete invece che numeri arbitrari? Calcolatore Sottorete IP applica questa stessa relazione binario/decimale specificamente agli indirizzi IPv4.
- Hai bisogno di numeri decimali molto grandi o molto piccoli in forma compatta? Calcolatore Notazione Scientifica gestisce invece quel tipo di conversione.
- Curioso di un sistema di numerazione posizionale molto più antico? Calcolatore Numeri Romani converte da e verso i numeri romani, che usano un approccio completamente diverso (non posizionale).