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.