Codice ASCII
Con US-ASCII si intende un sistema di codifica dei caratteri a 7 bit, e successivamente accettato come standard dall'ISO, con il nome di ISO/IEC 646.
Alla specifica iniziale basata su codici di 7 bit fecero seguito negli anni molte proposte di estensione ad 8 bit, con lo scopo di raddoppiare il numero di caratteri rappresentabili.
Come si legge questa tabella?
Esempio 1:
Supponiamo di voler codificare il carattere @ con 7 bit.
I bit in questa tabella vengono indicati con:
b7 b6 b5 b4 b3 b2 b1
I BIT più significativi o MSB sono b7 b6 b5 e si leggono nella prima riga orizzontale (column), i bit meno significativi o LSB si leggono in vertica nelle prime quattro colonne a sinistra (Row).
Il carattere corrispondente a @ (la chiocciola) si trova nella colonna sotto il numero 4 e nella riga corrispondente al numero zero. Quindi il numero esadecimale corrispondente è 40 H mentre il numero binario corrispondente è 100 0000.
codice ASCII di @ -->esadecimale --> binario --> Decimale
@ --> 40 H --> 100 0000 --> 64
Esempio 2:
Adesso vogliamo avere la codifica a 7 bit del carattere %.
Andiamo a vedere in quale colonna si trova e vediamo che si trova nella colonna numero 2; andiamo a vedere la riga trova si trova e vediamo che è nella riga 5. Quindi il carattere % corrisponde alla codifica 25 H in esadecimale e nella codifica 010 0101 binaria.
codice ASCII di % --> esadecimale --> binario --> decimale
% --> 25 H --> 010 0101 --> 37
ASCII ed UTF-8
Lo standard che sta prendendo piede e che dovrebbe essere il successore di ASCII è UTF-8, specie da quando è diventato la codifica principale di Unicode per internet secondo il W3C.
Questa codifica di Unicode che ormai è universalmente accettata da ogni nuovo programma offre caratteristiche interessanti grazie al fatto di sfruttare il bit di controllo del vecchio ASCII in modo più efficiente.
Il codice UTF-8 infatti si distingue dalle altre codifiche Unicode perché sfrutta il vecchio bit di parità di ASCII, non come bit di controllo, bensì come indicatore: analizza ogni byte, e se al posto del vecchio bit di parità c'è 0, allora il byte sarà letto come ASCII a 7 bit e teoricamente compatibile anche da programmi obsoleti; se però il byte corrente inizia con 1, allora sarà concatenato al byte successivo.
Come si fa a leggere questa tabella?
Questa tabella dà il valore decimale corrispondente al carattere ASCII.
Esempio 1:
Supponiamo di volere codificare il carattere @:
In questa tabella leggiamo il valore decimale corrispondente che è 64.
Dobbiamo adesso trasformare il numero decimale in binario e poi da binario in esadecimale.
Trasformiamo il numero decimale 64 in binario, effettuando delle divisioni per due del numero dato e riportiamo nella colonna dei resti lo zero se il resto è nullo , l'1 se il resto è 1.
Come facciamo adesso a leggere il numero codificato? Basta leggere solo la colonna del resto dal basso verso l'alto e scriverlo da destra verso sinistra, cioè dalla cifra più significativa (MSB) alla cifra meno significativa (LSB).
La codifica è:
codice ASCII -->decimale--> binario
@ ---> 64 --> 100 0000
Se adesso vogliamo codificare da binario ad esadecimale dobbiamo utilizzare la regola del quartetto, facendo corrispondere ad ogni quartetto il numero decimale corrispondente, e aggiungendo uno zero a sinistra se il quartetto è incompleto.
Esempio:
numero binario--> 100 000
il quartetto a sinistra è incompleto, aggiungiamo uno zero:
0100 0000
Il primo quartetto corrisponde alla codifica del numero 4 e il secondo quartetto corrisponde alla codifica del numero zero. Qundi
il numero binario 0100 0000 corrisponde al numero esadecimale 40 H.