← TIC — Tecnologie dell'informazione e della comunicazione  ·  Rappresentare le informazioni

Dal decimale al binario e viceversa

Nell'argomento precedente abbiamo capito perché i computer usano il sistema binario: i loro circuiti riconoscono in modo affidabile solo due stati elettrici, che chiamiamo convenzionalmente 0 e 1. Ora impariamo come si passa da un numero scritto in decimale (quello che usiamo ogni giorno) a un numero scritto in binario, e viceversa: due procedimenti semplici che ci serviranno per tutto il resto del percorso.

Per convertire un numero dal sistema decimale al sistema binario si usa il metodo delle divisioni successive per 2. Non è il primo sistema mai inventato per aiutarsi con i calcoli — pensiamo all'abaco, usato da millenni proprio per rappresentare quantità in modo posizionale, spostando delle palline invece di scrivere cifre:

Un abaco: anche questo è un sistema posizionale, molto più antico del binario
Un abaco: anche questo è un sistema posizionale, molto più antico del binarioAinomugisha Brendah — Wikimedia Commons, CC BY-SA 4.0
💡 Lo sapevi?

La grande sfida: abaco contro calcolatrice

Nel 1946 a Tokyo si tenne una vera gara di calcolo tra un impiegato giapponese esperto di abaco (soroban) e un soldato americano con una calcolatrice elettromeccanica. Su cinque prove di addizione, sottrazione e moltiplicazione, l'abaco vinse quattro volte su cinque: la velocità della mano allenata batté la macchina.

Il metodo si applica così:

  1. Dividi il numero per 2 e scrivi da parte il resto della divisione, che sarà sempre 0 oppure 1.
  2. Dividi per 2 il quoziente appena ottenuto, scrivendo anche questo resto.
  3. Ripeti la divisione sul nuovo quoziente finché non diventa 0.
  4. Leggi tutti i resti scritti, ma dal basso verso l'alto: quella sequenza di 0 e 1 è il numero in binario.

Proviamo a convertire il numero 13:

1. 13 ÷ 2 = 6 con resto 1 2. 6 ÷ 2 = 3 con resto 0 3. 3 ÷ 2 = 1 con resto 1 4. 1 ÷ 2 = 0 con resto 1 Leggendo i resti dal basso verso l'alto otteniamo 1101: il numero 13 in decimale corrisponde quindi a 1101 in binario.

I passaggi della conversione di 13 da decimale a binario
I passaggi della conversione di 13 da decimale a binarioSchema originale
Focus

Un metodo alternativo: sottrarre le potenze

Invece di dividere, puoi anche sottrarre: trova la potenza di 2 più grande che sta dentro al numero, sottraila, e ripeti con il resto. Per 13: la potenza più grande è 8 (resta 5), poi 4 (resta 1), poi 1 (resta 0) → segni 1 dove hai usato una potenza, 0 dove non l'hai usata: 1101. Stesso risultato, percorso diverso: usa il metodo che ti viene più naturale.

Focus

Le potenze di 2, da tenere a mente

Conoscere a memoria almeno le prime potenze — 1, 2, 4, 8, 16, 32, 64, 128, 256 — rende molto più rapida la conversione da binario a decimale, perché evita di doverle ricalcolare ogni volta da zero.

Per il percorso inverso — da binario a decimale — si usa il metodo delle potenze di 2:

  1. Numera le cifre binarie da destra verso sinistra, partendo da 0: la prima posizione vale 2 elevato 0, la seconda 2 elevato 1, e così via.
  2. Moltiplica ogni cifra binaria (0 oppure 1) per la potenza di 2 della sua posizione.
  3. Somma tutti i risultati ottenuti: il totale è il numero in decimale.

Riprendiamo il risultato di prima, 1101, e verifichiamo che tornando indietro si ottenga di nuovo 13:

1. 1×8 = 8 (cifra più a sinistra, posizione 2 elevato 3) 2. 1×4 = 4 3. 0×2 = 0 4. 1×1 = 1 5. 8 + 4 + 0 + 1 = 13 Il cerchio si chiude: siamo tornati esattamente al numero di partenza.

Focus

Due errori comuni da evitare

Il primo errore è leggere i resti nell'ordine sbagliato (vanno letti dal basso verso l'alto, non dall'alto verso il basso). Il secondo è sbagliare a numerare le posizioni delle cifre binarie: la prima posizione a destra vale 2 elevato 0 (cioè 1), non 2 elevato 1 — si comincia sempre a contare da zero.

Le potenze di 2 più utili da conoscere a memoria
Le potenze di 2 più utili da conoscere a memoriaSchema originale

Questi due procedimenti non sono solo un esercizio da fare a mano: sono esattamente ciò che fanno, in automatico, i circuiti dei computer e molti strumenti di calcolo.

Molte calcolatrici scientifiche hanno una modalità BIN/DEC/HEX che applica automaticamente questi stessi procedimenti di conversione
Molte calcolatrici scientifiche hanno una modalità BIN/DEC/HEX che applica automaticamente questi stessi procedimenti di conversionewww.Pixel.la Free Stock Photos — Wikimedia Commons, CC0
💡 Lo sapevi?

Contare fino a 1023 con le dita

Se invece di alzare un dito per ogni unità usiamo le dieci dita come dieci bit — alzato = 1, abbassato = 0 — possiamo rappresentare ogni numero da 0 a 1023! Assegnando alle dita i valori 1, 2, 4, 8... fino a 512, ogni combinazione di dita alzate e abbassate corrisponde a un numero binario diverso: un trucco usato davvero nei laboratori di informatica per allenarsi a fare conversioni a mente.

💡 Lo sapevi?

Un codice compatto per il binario: l'esadecimale

Scrivere numeri binari molto lunghi è scomodo, così informatici e programmatori spesso usano l'esadecimale (base 16, cifre 0-9 poi A-F) come "scorciatoia": ogni cifra esadecimale rappresenta esattamente 4 cifre binarie. Lo trovi spesso senza saperlo, per esempio nei codici colore delle pagine web come #FF0000 per il rosso.

💡 Lo sapevi?

Perché i programmatori contano da zero

Poiché la prima posizione di un numero binario vale 2 elevato 0, in moltissimi linguaggi di programmazione anche il primo elemento di un elenco si numera a partire da 0 e non da 1 — un'abitudine che spiazza sempre i principianti, ma che è una diretta conseguenza di come funziona la numerazione posizionale.

VideoConversione da Decimale a Binario e da Binario a Decimale (Get the Cookie)VideoConversione Binario-Decimale e Decimale-Binario (EnricOuntry)VideoCambio di base: da binario a decimale, esercizio (claudio marchesano)
🧪 Attività pratica⏱ 10 min

Conversione lampo

In coppia: uno studente sceglie un numero decimale tra 0 e 31 e lo comunica al compagno, che lo converte in binario applicando il metodo delle divisioni successive spiegato sopra, scrivendo ogni passaggio su un foglio. Poi si invertono i ruoli: chi ha scelto il numero controlla il risultato riconvertendolo in decimale con il metodo delle potenze di 2. Ripetete il giro almeno tre volte a testa, alternando chi sceglie il numero.

Ora che sappiamo tradurre i numeri tra le due basi, nel prossimo argomento vedremo come lo stesso principio — usare sequenze di 0 e 1 — permette ai computer di rappresentare anche lettere, simboli e segni di punteggiatura: il codice ASCII e lo standard Unicode.

Divisioni successive per 2 Potenze di 2 (moltiplica e somma) DECIMALE base 10 es. 13 BINARIO base 2 es. 1101

Mettiti alla prova

1. Converti il numero 22 in binario usando il metodo delle divisioni successive.

22 ÷ 2 = 11 r.0; 11 ÷ 2 = 5 r.1; 5 ÷ 2 = 2 r.1; 2 ÷ 2 = 1 r.0; 1 ÷ 2 = 0 r.1. Leggendo i resti dal basso verso l'alto: 10110.

2. Converti il numero binario 1010 in decimale usando il metodo delle potenze di 2.

1×8 + 0×4 + 1×2 + 0×1 = 8+0+2+0 = 10.

3. Perché nel metodo delle divisioni successive bisogna leggere i resti dal basso verso l'alto e non dall'alto verso il basso?

Perché il primo resto calcolato corrisponde alla cifra binaria di posizione più bassa (le unità), mentre l'ultimo resto, quando il quoziente diventa 0, corrisponde alla cifra più significativa: per scrivere il numero nell'ordine giusto si parte quindi dall'ultimo resto e si arriva al primo.

4. Qual è il valore massimo rappresentabile con 4 bit?

1111 in binario, cioè 1×8+1×4+1×2+1×1 = 15. Con 4 bit si rappresentano quindi i numeri da 0 a 15.

5. Vero o falso: ogni numero decimale ha una e una sola corrispondente rappresentazione binaria.

Vero: la conversione tra base 10 e base 2 è univoca in entrambe le direzioni.

6. Converti il numero 27 in binario usando il metodo che preferisci (divisioni o sottrazione delle potenze).

27 = 16+8+2+1 = 11011.

7. Qual è la potenza di 2 corrispondente alla prima posizione (più a destra) di un numero binario?

2 elevato 0, cioè 1 — si comincia sempre a contare le posizioni da zero.

8. Chi vinse la sfida di calcolo del 1946 a Tokyo tra abaco e calcolatrice elettromeccanica, e con che punteggio?

L'abaco (soroban), vincendo 4 prove su 5.

9. A cosa serve l'esadecimale, e quante cifre binarie rappresenta ciascuna sua cifra?

È una scorciatoia più compatta per scrivere numeri binari lunghi; ogni cifra esadecimale rappresenta 4 cifre binarie.

10. Perché in molti linguaggi di programmazione il primo elemento di un elenco si chiama "elemento 0" e non "elemento 1"?

Perché la numerazione delle posizioni segue lo stesso principio del sistema binario, dove la prima posizione vale 2 elevato 0.

Per chiarimenti su questo argomento è possibile scrivere via email