Vai al contenuto
BINARYRainbow Bits

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

  1. Numera le posizioni da destra verso sinistra, partendo da 0.
  2. Il peso di ogni posizione è la base elevata al numero della posizione.
  3. Moltiplica ogni cifra per il suo peso.
  4. 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.

Passo 1 di 4
Somma pesata: ogni cifra per il peso della sua posizione
CifraPesoProdotto
1× 2³ = 88
Totale8
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.

Allenati con la somma pesata.

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.