Context engineering

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.
1011Leggiamo da sinistra (ma calcoliamo per posizione da destra a sinistra):
Esempio: convertiamo 156 in binario (mostro ogni divisione: quoziente e resto).
Divisione per 16:
I computer memorizzano lettere come numeri. ASCII standard associa ad esempio:
"A" → 65 → in binario 01000001 (8 bit).010101000110111101101101(Se vuoi, puoi fornire la tabella ASCII da stampare; per la lezione basta mostrare qualche esempio e far convertire i padroni di casa.)
1011 + 1101Allineiamo a destra:
1011 (11 decimale)+ 1101 (13 decimale)------
Sommiamo colonna per colonna da destra:
Risultato: 11000.
Verifica in decimale: 11 + 13 = 24 → 11000 in binario = 16 + 8 = 24. Perfetto.
Rappresentazioni (8 bit):
00001101000001011111101011111010 + 1 = 11111011 (questo è il −5 in due-complemento)00001101+ 11111011= 00001000 (con carry che scarta)
Risultato 00001000 = 8. Corretto.
100000101000110000001110 = 14.Divisioni:
"C"?"C" = 67 decimale. Convertiamo:
1000011. Con 8 bit (prefisso aggiunto): 01000011.0110 + 001110110?C?10110 → valore decimaleCA è 65, B 66, C 67 → risposta b). (In binario C = 01000011.)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.
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.
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.
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.
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.
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.
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
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!
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.
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.
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".
Commenti
Posta un commento