Aritmetica

A06_Sistemi di numerazione

 

Licenza Creative Commons

 Eccetto dove diversamente specificato, il contenuto di questo sito è distribuito con Licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported.


A06_5 La codifica dei caratteri

I computer trattano i dati utilizzando il sistema binario. Tra i dati che un computer deve trattare ci sono i caratteri tipografici che vengono digitati su una tastiera e poi visualizzati su uno schermo, memorizzati su un supporto fisico oppure trasmessi a un altro computer.

 

A ogni singolo simbolo tipografico deve corrispondere una e una sola particolare sequenza di bit, cioè di cifre 0 e 1.

 

Per esempio posso decidere di dare al computer le seguenti istruzioni di codifica delle lettere maiuscole:

 

1 corrisponde alla lettera A

10 corrisponde alla lettera B

11 corrisponde alla lettera C

100 corrisponde alla lettera D

101 corrisponde alla lettera E

110 corrisponde alla lettera F

111 corrisponde alla lettera G

1000 corrisponde alla lettera H

1001 corrisponde alla lettera I

1010 corrisponde alla lettera J

1011 corrisponde alla lettera K

1100 corrisponde alla lettera L

1101 corrisponde alla lettera M

1110 corrisponde alla lettera N

1111 corrisponde alla lettera O

eccetera

 

Se scrivo "CANE", il computer traduce in:

 

11 1 1110 101

 

Il problema è che quando trasferisce o memorizza i dati, il computer non può mettere gli spazi e quindi, se scrivesse il codice della parola "CANE" unendo le codifiche scritte sopra, il risultato sarebbe:

 

1111110101

 

Questa scrittura non va bene perché è ambigua.

Se qualcuno andasse a rileggere per fare la decodifica, non potrebbe capire esattamente cosa è stato scritto. Il primo 1 potrebbe significare "A" oppure i primi due 1 potrebbero significare "C" oppure ancora i primi quattro 1 potrebbero significare "O". Questo problema si risolve stabilendo un numero fisso di cifre per ciascun numero del codice, per esempio quattro cifre (codifica a 4 bit):

 

0001 corrisponde alla lettera A

0010 corrisponde alla lettera B

0011 corrisponde alla lettera C

0100 corrisponde alla lettera D

0101 corrisponde alla lettera E

0110 corrisponde alla lettera F

0111 corrisponde alla lettera G

1000 corrisponde alla lettera H

1001 corrisponde alla lettera I

1010 corrisponde alla lettera J

1011 corrisponde alla lettera K

1100 corrisponde alla lettera L

1101 corrisponde alla lettera M

1110 corrisponde alla lettera N

1111 corrisponde alla lettera O

 

Con questo codice a larghezza fissa, la parola "CANE", si traduce così:

 

0011000111100101

 

Se poi qualcuno andasse a rileggere per fare la decodifica, capirebbe esattamente cosa è stato scritto se sa che è stata fatta una codifica a 4 bit e quindi sa che deve separare il codice in gruppi di quattro:

 

0011 0001 1110 0101

   C       A       N       E

 

E se invece volessi scrivere "IL CANE"?

 

In effetti mi manca un carattere, lo spazio tra l'articolo e il nome! Per fortuna ho ancora un numero libero a quattro bit, il numero 0, e quindi posso decidere che:

 

0000 corrisponde al carattere "spazio".

 

Se ora scrivo "IL CANE", il computer traduce in:

 

1001110000000011000111100101

 

 

Se faccio la decodifica, prima separo i gruppi di quattro bit:

 

1001 1100 0000 0011 0001 1110 0101

 

   I        L                 C       A       N       E

 

Il numero fisso di cifre binarie (bit) che codifica un carattere, in gergo informatico, è detto word (parola). Con una word di quattro bit si possono codificare 2⁴=16 caratteri.

 

16 caratteri sono troppo pochi per un alfabeto, infatti con le maiuscole più lo spazio siamo riusciti ad arrivare solo fino alla lettera "O".

 

Con una word a 8 bit si possono codificare 2⁸=256 caratteri che sono sufficienti a codificare i caratteri di base di una o più lingue europee, quelli che troviamo comunemente su una tastiera come:

  • lettere maiuscole (26 nell'alfabeto latino)
  • lettere minuscole (altri 26 caratteri)
  • cifre (10 caratteri)
  • punteggiatura e spazi
  • lettere accentate e caratteri speciali
  • caratteri di controllo (per esempio il comando "vai a capo")

Poiché una sequenza di 8 bit è chiamata byte, la codifica a 8 bit è detta anche codifica a 1 byte.

 

La codifica di caratteri a 8 bit adatta a rappresentare le lingue dell'Europa Occidentale si chiama ISO/IEC 8859-1 ed è stata standardizzata nel 1998.

I caratteri principali per l'uso in lingua italiana della codifica ISO/IEC_8859-1 sono riprodotti nella tabella qui sotto.