Bozza in revisione: il testo non è ancora stato approvato.
Binario, ottale ed esadecimale
Le basi otto e sedici hanno un legame speciale con la base due: 8 = 2³ e 16 = 2⁴. Ne segue che ogni cifra ottale corrisponde esattamente a tre bit e ogni cifra esadecimale a quattro bit. Per passare da una base all’altra non servono né somme né divisioni: basta raggruppare.
Dal binario all’ottale o all’esadecimale
- Dividi i bit in gruppi partendo da destra: gruppi di tre per l’ottale, di quattro per l’esadecimale.
- Se il gruppo più a sinistra resta incompleto, aggiungi zeri a sinistra.
- Sostituisci ogni gruppo con la cifra corrispondente.
Per esempio, 1011010₂ in esadecimale: 101 1010 diventa 0101 1010, cioè 5A₁₆. In ottale: 1 011 010 diventa 001 011 010, cioè 132₈.
- 01015
- 1010A
Gli zeri in grigio completano il gruppo più a sinistra.
Al contrario
Si sostituisce ogni cifra con il suo gruppo di bit, sempre completo: in ottale il 5 diventa 101 e l’1 diventa 001, non 1. Gli zeri iniziali del risultato si possono togliere solo alla fine, perché quelli in mezzo al numero contano.
| Esadecimale | Binario | Esadecimale | Binario |
|---|---|---|---|
| 0 | 0000 | 8 | 1000 |
| 1 | 0001 | 9 | 1001 |
| 2 | 0010 | A | 1010 |
| 3 | 0011 | B | 1011 |
| 4 | 0100 | C | 1100 |
| 5 | 0101 | D | 1101 |
| 6 | 0110 | E | 1110 |
| 7 | 0111 | F | 1111 |
Per questo l’esadecimale piace tanto a chi programma: è un modo compatto di scrivere i bit, quattro alla volta, senza perdere di vista il binario che c’è sotto.
Fonti
- Donald E. Knuth, The Art of Computer Programming, vol. 2: Seminumerical Algorithms (§ 4.1 Positional number systems, § 4.4 Radix conversion), Addison-Wesley, 1997.