Periferiche di input e output: tastiera, mouse, schermo, stampante e sensori

In questa lezione esploriamo il ruolo fondamentale delle periferiche di input e output, i dispositivi che permettono al computer di comunicare con il mondo esterno.

Analizzeremo il funzionamento di tastiere, mouse, schermi, stampanti e sensori, comprendendo come questi componenti si integrano nell'architettura di base di un sistema informatico.

  • shape
  • shape


Perché non puoi infilare un '2' nel computer? Dal Binario al testo con ASCII e UTF-8

Durante la scorsa lezione abbiamo visto come trasformare una sequenza binaria in un numero decimale. A questo punto qualcuno potrebbe fare una domanda apparentemente banale: "Prof, ma se dentro a una stringa binaria io ci infilo a forza il numero 2, cosa succede?"

La risposta è semplice: fisicamente non puoi. Il computer non ragiona a numeri, ma a segnali elettrici. All'interno dei microchip ci sono solo due stati possibili: assenza di tensione (0 Volt, che chiamiamo 0 logico) oppure presenza di tensione (5 Volt o 3.3V, che chiamiamo 1 logico). I circuiti elettronici hanno una soglia precisa: qualunque segnale sotto la soglia viene letto come 0, tutto ciò che sta sopra viene letto come 1. Non esiste uno spazio fisico per il "2". Il computer o è acceso (ON) o è spento (OFF).

La strada inversa: dal Decimale al Binario (Il metodo dei resti)

Sappiamo come leggere un numero binario, ma cosa fa il computer quando noi umani digitiamo sulla tastiera un numero normale, come 76? Deve convertirlo in zeri e uni. Per farlo non serve una sfera di cristallo, ma un algoritmo matematico semplicissimo: il metodo delle divisioni successive per 2.

Prendiamo il numero 76 e continuiamo a dividerlo per 2, segnandoci da parte il resto di ogni operazione. Se il risultato è esatto (senza virgola), il resto è 0. Se c'è la virgola (fa virgola 5), teniamo la parte intera e il resto è 1:

  • 76 ÷ 2 = 38 (senza resto → 0)
  • 38 ÷ 2 = 19 (senza resto → 0)
  • 19 ÷ 2 = 9,5 (teniamo 9, c'è il resto → 1)
  • 9 ÷ 2 = 4,5 (teniamo 4, c'è il resto → 1)
  • 4 ÷ 2 = 2 (senza resto → 0)
  • 2 ÷ 2 = 1 (senza resto → 0)
  • 1 ÷ 2 = 0,5 (siamo arrivati a zero, c'è il resto → 1)
Attenzione all'ordine di lettura! I resti ottenuti non si leggono dall'alto in basso, ma rigorosamente dal basso verso l'alto. Rileggendo i resti al contrario, scopriamo che 7610 in codice binario si scrive 10011002.

Dalla Matematica alle Lettere: quanti Bit servono?

I numeri sono infiniti: non potremmo mai creare una tabella che elenchi tutti i numeri del mondo, perciò per loro usiamo regole matematiche. Ma per le parole? L'alfabeto umano è composto da un numero finito di simboli (A, B, C...). Per il testo, quindi, possiamo usare una tabella di conversione fissa.

Ma quanti caratteri diversi possiamo memorizzare usando i bit? Scopriamolo contando:

  • Con 1 bit abbiamo solo 2 combinazioni: 0 oppure 1.
  • Con 2 bit abbiamo 4 combinazioni: 00, 01, 10, 11.
  • Con 3 bit abbiamo 8 combinazioni.

A ogni bit che aggiungiamo, le combinazioni possibili raddoppiano sempre! La regola universale è 2N, dove N è il numero di bit a disposizione. Con un pacchetto da 8 bit (che chiamiamo Byte), possiamo rappresentare esattamente 28 = 256 simboli diversi.

L'era dell'ASCII e il suo grande limite

Negli anni '60, negli Stati Uniti, fu inventata la prima grande tabella standard per il testo: il codice ASCII (American Standard Code for Information Interchange). Era una codifica a lunghezza fissa che usava inizialmente 7 bit (128 caratteri) e poi 8 bit (256 caratteri).

Nella tabella ASCII a ogni lettera corrisponde un numero: ad esempio la lettera maiuscola 'A' è il numero 65, mentre il carattere numerico '0' corrisponde al 48 (che in binario a 8 bit si scrive 00110000). Per molti anni l'ASCII è bastato per scrivere testi e programmi.

Ma c'era un problema gigantesco: l'ASCII era stato progettato per la lingua inglese! Bastava uscire dagli Stati Uniti per trovarsi nei guai: l'italiano ha le lettere accentate (à, è, ì), il greco ha il suo alfabeto, per non parlare dell'arabo, del cirillico russo e delle decine di migliaia di ideogrammi cinesi e giapponesi (senza contare le emoji moderne). Con sole 256 caselle a disposizione, rappresentare tutte le lingue del mondo era matematicamente impossibile!

Il Sacro Graal dell'Informatica: la Retrocompatibilità

Qualcuno potrebbe dire: "Facile! Buttiamo via l'ASCII e inventiamo una codifica nuova da zero". In informatica, però, non funziona così. Se un'azienda ha speso miliardi per scrivere software e archiviare documenti per trent'anni, non puoi andare da loro e dire: "Da domani mattina buttiamo tutto perché il vecchio formato non è più supportato". Sarebbe un disastro economico.

Nasce così un concetto cardine: la retrocompatibilità. Una tecnologia nuova è retrocompatibile quando introduce funzioni moderne e potenti, ma continua a essere perfettamente in grado di leggere ed eseguire i file creati con le vecchie tecnologie del passato.

UTF-8: La lingua universale del Pianeta Terra

Per superare i limiti dell'ASCII senza rompere il passato, gli ingegneri hanno inventato UTF-8. A differenza dell'ASCII, UTF-8 è una codifica a lunghezza variabile: non costringe ogni carattere a pesare 8 bit, ma può usare da 1 a 4 byte (fino a 32 bit) a seconda di quanto è complesso il simbolo.

Con 4 byte a disposizione possiamo creare oltre 4 miliardi di combinazioni: abbastanza spazio per includere tutti gli alfabeti della storia umana, i simboli scientifici e tutte le emoji esistenti!

Il colpo di genio di UTF-8 è la sua perfetta retrocompatibilità con l'ASCII: se un carattere è una normale lettera inglese (come 'A'), UTF-8 usa un solo byte che comincia con lo zero 0, identico al vecchio ASCII. Se invece incontra una lettera accentata, un kanji giapponese o un'emoji, il primo bit è 1 e il computer capisce al volo che deve leggere i byte successivi. Ecco perché ogni volta che aprite un browser web trovate scritto : è lo standard globale che permette a tutto il mondo di comunicare senza errori di testo!
Paragrafi letti

 

    
0%
       Salva

Esercizi su "Periferiche di input e output: tastiera, mouse, schermo, stampante e sensori."

0%

Statistics