I calcolatori rappresentano ogni dato in binario, ma programmatori e progettisti lavorano anche in esadecimale e ottale. Saper convertire tra basi è il primo strumento dell’informatica di base. Questa scheda allena le conversioni tra decimale, binario, ottale ed esadecimale, parte intera e frazionaria.
Valore posizionale: in base b, ogni cifra vale per la sua posizione:
1. Da binario a decimale
Esercizio. Convertire 1011_2 in decimale.
Si sommano le potenze di 2 nelle posizioni con cifra 1:
1011_2=1\cdot2^3+0\cdot2^2+1\cdot2^1+1\cdot2^0=8+0+2+1=11_{10}.
Ogni posizione vale il doppio della precedente: la conversione è una somma pesata di potenze di 2.
2. Da decimale a binario
Esercizio. Convertire 43_{10} in binario con le divisioni successive.
Si divide ripetutamente per 2, leggendo i resti dal basso:
43:2=21\ r\,1,\ \ 21:2=10\ r\,1,\ \ 10:2=5\ r\,0,\ \ 5:2=2\ r\,1,\ \ 2:2=1\ r\,0,\ \ 1:2=0\ r\,1.
Resti dal basso verso l’alto: 101011:
43_{10}=101011_2.
Verifica: 32+8+2+1=43. ✓ Il metodo delle divisioni successive vale per qualunque base destinazione.
3. Da decimale a esadecimale
Esercizio. Convertire 254_{10} in esadecimale.
Divisioni successive per 16:
254:16=15\ r\,14,\qquad 15:16=0\ r\,15.
Le cifre 14 e 15 in esadecimale sono E e F. Resti dal basso:
254_{10}=\text{FE}_{16}.
Verifica: 15\times16+14=240+14=254. ✓ L’esadecimale usa A–F per le cifre 10–15.
4. Conversione binario ↔ esadecimale
Esercizio. Convertire 11010110_2 in esadecimale.
Si raggruppano i bit a gruppi di 4 (una cifra esadecimale per nibble), da destra:
\underbrace{1101}_{D}\ \underbrace{0110}_{6}\ \Rightarrow\ \text{D6}_{16}.
(1101_2=13=D, 0110_2=6.) Il legame binario-esadecimale è diretto perché 16=2^4: ogni 4 bit = 1 cifra esadecimale. È il motivo per cui l’esadecimale è comodo per i programmatori.
5. Conversione binario ↔ ottale
Esercizio. Convertire 11010110_2 in ottale.
Si raggruppano i bit a gruppi di 3 (perché 8=2^3), da destra:
\underbrace{11}_{3}\ \underbrace{010}_{2}\ \underbrace{110}_{6}\ \Rightarrow\ 326_8.
(Si completa il gruppo più a sinistra con zeri: 011_2=3.) Verifica: 3\times64+2\times8+6=192+16+6=214, e 11010110_2=214. ✓
6. Conversione della parte frazionaria
Esercizio. Convertire 0{,}625_{10} in binario.
Si moltiplica ripetutamente per 2, leggendo le parti intere dall’alto:
0{,}625\times2=1{,}25\ (1),\quad 0{,}25\times2=0{,}5\ (0),\quad 0{,}5\times2=1{,}0\ (1).
Parti intere dall’alto verso il basso:
0{,}625_{10}=0{,}101_2.
Verifica: 2^{-1}+2^{-3}=0{,}5+0{,}125=0{,}625. ✓ Per la parte frazionaria si moltiplica (non si divide), e non tutte le frazioni decimali terminano in binario.
7. Frazione decimale periodica in binario
Esercizio. Perché 0{,}1_{10} non ha una rappresentazione binaria finita?
Applichiamo il metodo delle moltiplicazioni successive:
e da 0{,}2 il ciclo riparte. Quindi:
Il periodo è inevitabile perché 0{,}1=\dfrac{1}{10}=\dfrac{1}{2\cdot5}: il denominatore contiene il fattore 5, non una sola potenza di 2. In binario terminano solo le frazioni il cui denominatore ridotto è una potenza di due.
8. Indirizzo esadecimale in binario e decimale
Esercizio. Convertire l’indirizzo \text{0x3A7} in binario e in decimale.
Per il binario si espande ogni cifra esadecimale in 4 bit:
Quindi:
Per il decimale:
Gli indirizzi di memoria si scrivono spesso in esadecimale proprio perché il passaggio ai bit è immediato: ogni cifra corrisponde esattamente a un nibble.
9. Numero minimo di bit
Esercizio. Quanti bit servono per rappresentare tutti i valori interi da 0 a 999 senza segno?
Con n bit senza segno si rappresentano 2^n valori, da 0 a 2^n-1. Serve:
Poiché 2^9=512 e 2^{10}=1024, servono 10 bit. Con 9 bit il massimo sarebbe 511, insufficiente; con 10 bit il massimo è 1023, quindi l’intervallo contiene tutti i valori richiesti.
Errori comuni
- Leggere i resti nell’ordine sbagliato. Nelle divisioni successive i resti vanno letti dal basso (ultimo resto = bit più significativo).
- Sbagliare il raggruppamento dei bit. Per l’esadecimale si raggruppa a 4 bit, per l’ottale a 3, partendo da destra.
- Dividere la parte frazionaria. La parte intera si divide, la frazionaria si moltiplica per la base.
- Pretendere rappresentazioni finite per ogni decimale. In binario molte frazioni decimali diventano periodiche: non è un errore di calcolo, è una proprietà della base.
- Dimenticare le cifre A–F. In esadecimale le cifre 10–15 sono A–F: usare 10,11\dots è errore di notazione.