
3 Il linguaggio binario e i sistemi di numerazione
Introduzione: perché il binario?
Immagina un corridoio pieno di lampadine. Ogni lampadina può essere accesa (1) o spenta (0). Con una sola lampadina puoi indicare due stati: acceso/spento. Con due lampadine hai quattro combinazioni (00, 01, 10, 11). Questo è il cuore del linguaggio digitale: segnali ON/OFF, sì/no, 1/0. I computer parlano così perché i componenti elettronici — transistor, porte logiche — funzionano scegliendo tra due stati.
Concetti teorici essenziali
- Bit = binary digit = 0 o 1.
- Posizione in un numero binario corrisponde a una potenza di 2. Da destra a sinistra: 2⁰, 2¹, 2², 2³, …
- Byte = 8 bit. Nibble = 4 bit. Parole (word) dipendono dall’architettura (16, 32, 64 bit).
- Range valori: con n bit si rappresentano 0 … (2ⁿ − 1) per numeri senza segno.
- Due-complemento = convenzione per rappresentare numeri negativi (vedremo come funziona).
Tabella rapida potenze di 2 (utile come "tassello" in classe)
- 2⁰ = 1
- 2¹ = 2
- 2² = 4
- 2³ = 8
- 2⁴ = 16
- 2⁵ = 32
- 2⁶ = 64
- 2⁷ = 128
- 2⁸ = 256
Conversioni — esempi passo-passo (eseguiti digit-by-digit)
A) Da binario a decimale — Esempio: 1011
Leggiamo da sinistra (ma calcoliamo per posizione da destra a sinistra):
- cifre (da sinistra a destra): 1 0 1 1
- posizioni (da destra): 2³, 2², 2¹, 2⁰ = 8, 4, 2, 1Calcolo:
- 1 × 2³ = 1 × 8 = 8
- 0 × 2² = 0 × 4 = 0
- 1 × 2¹ = 1 × 2 = 2
- 1 × 2⁰ = 1 × 1 = 1Somma = 8 + 0 + 2 + 1 = 11 (decimale).
B) Da decimale a binario — Metodo divisione per 2 (resti)
Esempio: convertiamo 156 in binario (mostro ogni divisione: quoziente e resto).
- 156 ÷ 2 = 78 resto 0
- 78 ÷ 2 = 39 resto 0
- 39 ÷ 2 = 19 resto 1
- 19 ÷ 2 = 9 resto 1
- 9 ÷ 2 = 4 resto 1
- 4 ÷ 2 = 2 resto 0
- 2 ÷ 2 = 1 resto 0
- 1 ÷ 2 = 0 resto 1 (qui terminiamo)Ora leggiamo i resti dal basso verso l’alto: 1 0 0 1 1 1 0 0 → 10011100 (binario). Verifica: 128 + 0 + 0 + 16 + 8 + 4 + 0 + 0 = 156.
C) Da decimale a esadecimale (base 16) — esempio: 255
Divisione per 16:
- 255 ÷ 16 = 15 resto 15 → 15 in esadecimale è F
- 15 ÷ 16 = 0 resto 15 → FQuindi 255 decimale = FF (esadecimale).
Codifica di caratteri: ASCII (pratica)
I computer memorizzano lettere come numeri. ASCII standard associa ad esempio:
"A"→ 65 → in binario01000001(8 bit).Esempio pratico: trasformiamo la parola Tom (passo-passo):- T = 84 → dividendo per 2 otteniamo binario:
01010100 - o = 111 → binario:
01101111 - m = 109 → binario:
01101101Nome in binario: 01010100 01101111 01101101.
(Se vuoi, puoi fornire la tabella ASCII da stampare; per la lezione basta mostrare qualche esempio e far convertire i padroni di casa.)
Operazioni binarie — esempi svolti
A) Addizione binaria — esempio: 1011 + 1101
Allineiamo a destra:
1011 (11 decimale)+ 1101 (13 decimale)------
Sommiamo colonna per colonna da destra:
- colonna 0 (2⁰): 1 + 1 = 2 → scrivo 0, porto 1 (carry).
- colonna 1 (2¹): 1 + 0 + carry1 = 2 → scrivo 0, porto 1.
- colonna 2 (2²): 0 + 1 + carry1 = 2 → scrivo 0, porto 1.
- colonna 3 (2³): 1 + 1 + carry1 = 3 → 3 in binario è 1 con carry 1 (perché 3 = 1 + 2). Scrivo 1, porto 1.
- carry finale = 1 → lo scrivo a sinistra.
Risultato: 11000.
Verifica in decimale: 11 + 13 = 24 → 11000 in binario = 16 + 8 = 24. Perfetto.
B) Sottrazione con due-complemento — esempio: 13 − 5 (usando 8 bit)
Rappresentazioni (8 bit):
- 13 =
00001101 - 5 =
00000101Passi per ottenere −5 in due-complemento:
- inverti tutti i bit di 5:
11111010 - aggiungi 1:
11111010+1=11111011(questo è il −5 in due-complemento)Ora addiziona 13 + (−5):
00001101+ 11111011= 00001000 (con carry che scarta)
Risultato 00001000 = 8. Corretto.
C) Esempio di overflow (8 bit): 130 + 140
- 130 =
10000010 - 140 =
10001100Addizione: - Somma aritmetica: 130 + 140 = 270
- In 8 bit il massimo è 255 → abbiamo overflow. Se consideriamo solo gli 8 bit di basso peso otteniamo
00001110= 14.Spiegazione: la somma genera un carry oltre l’ottavo bit, perso se si lavora su 8 bit senza segnalazione → valore risultante = 270 mod 256 = 14.
Esercizi svolti
Esercizio 1 — Converti 19 in binario (passi)
Divisioni:
- 19 ÷ 2 = 9 r 1
- 9 ÷ 2 = 4 r 1
- 4 ÷ 2 = 2 r 0
- 2 ÷ 2 = 1 r 0
- 1 ÷ 2 = 0 r 1Rivolgi i resti: 10011. Verifica: 16 + 0 + 0 + 2 + 1 = 19.
Esercizio 2 — Usa ASCII: quale è il binario di "C"?
"C" = 67 decimale. Convertiamo:
- 67 ÷ 2 = 33 r 1
- 33 ÷ 2 = 16 r 1
- 16 ÷ 2 = 8 r 0
- 8 ÷ 2 = 4 r 0
- 4 ÷ 2 = 2 r 0
- 2 ÷ 2 = 1 r 0
- 1 ÷ 2 = 0 r 1Resta:
1000011. Con 8 bit (prefisso aggiunto): 01000011.
Esercizio 3 — Addizione: 0110 + 0011
- 0110 (6) + 0011 (3) = 1001 (9). Passaggi: colonna per colonna, portando eventuali carry (qui nessuno tranne al limite).
Test finale (autovalutazione)
10110?C?10) Soluzioni del test — con spiegazioni passo-passo
10110 → valore decimaleCA è 65, B 66, C 67 → risposta b). (In binario C = 01000011.)L’Alfabeto della Luce:Come i Computer Usano il Binario per Creare il Mondo Digitale
Immaginate un corridoio infinito pieno di interruttori. Ognuno di questi può essere solo in due stati: acceso o spento. Non esistono sfumature, non c’è una via di mezzo. Questo scenario, apparentemente semplice, è il motore segreto di ogni smartphone, computer o intelligenza artificiale sul pianeta. È il mondo del linguaggio binario.
1. Perché i computer sono così "testardi"?
Noi esseri umani usiamo il sistema decimale (basato su 10 cifre, probabilmente perché abbiamo dieci dita), ma per una macchina è molto più sicuro e veloce distinguere tra "c'è corrente" (1) e "non c'è corrente" (0). Questi singoli frammenti di informazione si chiamano Bit (Binary Digit).
Quando mettiamo insieme 8 di questi "interruttori", otteniamo un Byte. Se un bit è una lettera, un byte è una parola corta; mettendone insieme miliardi, otteniamo i video in alta definizione che guardiamo ogni giorno.
2. Il gioco delle potenze: come contare con 0 e 1
Nel nostro sistema decimale, la posizione di una cifra cambia il suo valore (pensa alla differenza tra 1, 10 e 100). Nel binario funziona allo stesso modo, ma ogni posizione vale il doppio di quella precedente:
La prima posizione a destra vale 1.
La seconda vale 2.
La terza vale 4, poi 8, 16, 32, e così via.
Quindi, se vediamo il numero binario 1011, stiamo leggendo un codice che dice: "Prendi un 8, zero 4, un 2 e un 1". Sommandoli (8+2+1), scopriamo che per il computer quel codice significa 11.
3. Dalle cifre alle lettere: il codice ASCII
Ma come fa un computer a scrivere "Ciao" se capisce solo i numeri? Esiste una sorta di "dizionario universale" chiamato ASCII. In questo sistema, ogni lettera corrisponde a un numero specifico.
Ad esempio, la lettera "A" maiuscola è il numero 65. Quando premiamo "A" sulla tastiera, il computer riceve istantaneamente una sequenza di otto interruttori (01000001) che interpreta come quella specifica lettera.
4. Matematica binaria: addizioni e "trabocchi"
Sommare in binario è sorprendentemente simile a come facevamo a scuola, ma con una regola bizzarra: 1 + 1 fa 0 con il riporto di 1. È come se il nostro contatore non avesse spazio per il "2" e dovesse passare subito alla colonna successiva.
A volte, però, i computer incontrano un limite fisico: l'Overflow. Immaginate un contachilometri di una vecchia auto che arriva a 999.999; al chilometro successivo, torna a 000.000 perché non ha più spazio per le cifre. Nei computer accade lo stesso: se il risultato di un calcolo è troppo grande per lo spazio di memoria assegnato (ad esempio 8 bit), i bit "in eccesso" vengono persi, e il risultato finale appare drasticamente più piccolo di quello reale.
5. Non solo 0 e 1: il misterioso Esadecimale
Per evitare di scrivere stringhe lunghissime di zeri e uni (che farebbero impazzire i programmatori), si usa spesso l'Esadecimale. È un sistema a 16 cifre che usa i numeri da 0 a 9 e poi le lettere da A a F per indicare i valori da 10 a 15. È un modo "compatto" per leggere il binario: ad esempio, il colore bianco puro in un sito web è scritto come FFFFFF, che per il computer è una lunghissima sfilza di "1" accesi.
6. Il modello RGB: I tre colori primari della luce
Ogni volta che inviate un emoji o guardate un film in streaming, state assistendo a una danza frenetica di miliardi di minuscoli interruttori che si accendono e si spengono. Il linguaggio binario è l'essenza della semplicità che genera una complessità infinita.
Per capire come un computer visualizza un tramonto infuocato o il verde di un prato partendo solo da zeri e uni, dobbiamo pensare allo schermo come a un immenso mosaico composto da milioni di tessere minuscole: i pixel.
Ecco il processo che trasforma i numeri in colori, passo dopo passo:
A differenza della pittura (dove i colori primari sono rosso, giallo e blu), i computer usano il sistema RGB (Red, Green, Blue). Ogni singolo pixel dello schermo è composto da tre piccolissime "lampadine" di questi colori.
Mescolando la luce di queste tre lampadine a diverse intensità, il nostro occhio percepisce tutti i colori possibili:
Rosso + Verde + Blu (al massimo) = Bianco
Rosso + Verde = Giallo
Tutte spente = Nero
7. La "Profondità di Colore": Quanti bit per ogni pixel?
Per decidere quanto deve essere luminosa ogni "lampadina" (R, G o B), il computer assegna loro dei numeri. Nella maggior parte dei sistemi moderni, si usano 8 bit per ogni colore.
Ricordate il sistema binario? Con 8 bit possiamo rappresentare numeri da 0 a 255.
0: La lampadina è completamente spenta.
255: La lampadina è alla sua massima luminosità.
Poiché abbiamo tre colori (R, G, B) e ognuno ha 8 bit, ogni pixel "pesa" 24 bit. Questo sistema permette di creare $256 \times 256 \times 256$ combinazioni, ovvero oltre 16 milioni di colori diversi: una varietà superiore a quella che l'occhio umano riesce a distinguere!
8. Dal Binario all'Esadecimale: Il linguaggio dei grafici
Quando i designer o i programmatori scelgono un colore per un sito web, non scrivono lunghe stringhe di 0 e 1, ma usano il sistema Esadecimale (base 16) che abbiamo visto prima.
Un codice colore esadecimale è composto da 6 caratteri (due per il Rosso, due per il Verde, due per il Blu). Ad esempio:
#FF0000: Rosso al massimo (FF), Verde a zero (00), Blu a zero (00). Risultato: Rosso puro.
#00FF00: Risultato: Verde puro.
#808080: Una via di mezzo per tutti e tre. Risultato: Grigio.
9. Come viene memorizzata una foto?
Una fotografia digitale non è altro che una lunghissima lista di numeri. Il file (che sia un JPEG o un PNG) dice al computer:
"Il pixel nella posizione (0,0) deve avere Rosso=200, Verde=50, Blu=30".
"Il pixel a fianco deve avere Rosso=201..."
E così via per milioni di volte.
Quando apri l'immagine, la scheda video legge questi numeri e invia la giusta quantità di corrente elettrica alle minuscole lampadine LED del tuo schermo.
10 Curiosità: Perché alcune foto "pesano" più di altre?
Se ogni pixel occupa 24 bit e una foto ha 12 megapixel (12 milioni di pixel), il file dovrebbe essere enorme. Per questo esistono gli algoritmi di compressione come il JPEG, che "riassumono" i numeri: invece di scrivere il colore di ogni singolo pixel, dicono "in quest'area di 10 pixel sono tutti quasi blu, scriviamoli tutti uguali per risparmiare spazio".
Nessun commento:
Posta un commento