Bozza in revisione: il testo non è ancora stato approvato.
Da una base qualsiasi al decimale
Per sapere quanto vale un numero scritto in un’altra base basta fare quello che facciamo senza pensarci con il decimale: moltiplicare ogni cifra per il peso della sua posizione e sommare. Questo procedimento si chiama somma pesata.
Il procedimento
- Numera le posizioni da destra verso sinistra, partendo da 0.
- Il peso di ogni posizione è la base elevata al numero della posizione.
- Moltiplica ogni cifra per il suo peso.
- Somma i prodotti: il risultato è il numero in decimale.
Per esempio, 1011₂:
1011₂ = 1 × 2³ + 0 × 2² + 1 × 2¹ + 1 × 2⁰ = 8 + 0 + 2 + 1 = 11
Con l’esadecimale il procedimento non cambia, ma prima bisogna tradurre le lettere nel loro valore. Per 2B₁₆ la B vale undici:
2B₁₆ = 2 × 16¹ + 11 × 16⁰ = 32 + 11 = 43
Prova con il tuo numero: la tabella si compila una riga alla volta.
| Cifra | Peso | Prodotto |
|---|---|---|
| 1 | × 2³ = 8 | 8 |
| Totale | 8 | |
Il metodo di Horner· approfondimento
C’è un modo per fare meno moltiplicazioni: si parte dalla cifra più a sinistra e, a ogni passo, si moltiplica il risultato per la base e si aggiunge la cifra successiva. Per 1011₂: 1, poi 1 × 2 + 0 = 2, poi 2 × 2 + 1 = 5, infine 5 × 2 + 1 = 11. È lo stesso calcolo della somma pesata, raccolto in un altro ordine, ed è il modo in cui un computer legge un numero scritto come testo.
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.