1.3.5 L’ASCII

Poiché tutti i circuiti elettronici presenti in un computer lavorano su informazioni in forma “numerica”, anche le informazioni alfabetiche devono essere trasformate in numeri. E questo avviene per mezzo di una codifica che associa ad ogni carattere (simbolo) alfanumerico un corrispondente valore numerico di 1 byte che l’elaboratore potrà quindi gestire. Il sistema di codifica adottato dalla maggior parte dei sistemi è l’ASCII (American Standard Code for Information Interchange), definito dall’ANSI10 e riportato nella tab. 1.3.11


Dec--Hex---Char-|Dec---Hex--Char-|Dec---Hex--Char--|Dec--Hex---Char-|
0----00---NUL--|-32---20--------|-64----40----@---|-96----60----`---|
1    01   SOH  | 33   21     !  | 65    41    A   | 97    61    a   |
2    02   STX  | 34   22     "  | 66    42    B   | 98    62    b   |
3    03   ETX  | 35   23     #  | 67    43    C   | 99    63    c   |
45    0045   EEONTQ  | 3367   2245     $%  | 6689    4445    DE   |110001   6645    de   |
6    06   ACK  | 38   26     &  | 70    46    F   |102   66    f   |
7    07   BEL  | 39   27     '  | 71    47    G   |103   67    g   |
89    0089   TBASB  | 4401   2289     ()  | 7723    4489    HI   |110045   6689    hi   |
10    0A    LF  | 42   2A     *  | 74   4A     J   |106   6A    j   |
11    0B    VT  | 43   2B     +  | 75    4B     K   |107   6B    k   |
12    0C    FF  | 44   2C     ,  | 76    4C     L   |108   6C    l   |
1314    00DE    CSRO  | 4456   22DE     -.  | 7778   4D4E     MN   |110190   66DE    mn   |
15    0F    SI  | 47   2F     /  | 79    4F     O   |111   6F    o   |
16    10   DLE  | 48   30     0  | 80    50    P   |112   70    p   |
17    11   DC1  | 49   31     1  | 81    51    Q   |113   71    q   |
1819    1123   DDCC23  | 5501   3323     23  | 8823    5523    RS   |111145   7723    rs   |
20    14   DC4  | 52   34     4  | 84    54    T   |116   74    t   |
21    15   NAK  | 53   35     5  | 85    55    U   |117   75    u   |
22    16   SYN  | 54   36     6  | 86    56    V   |118   76    v   |
2324    1178   ECTABN  | 5556   3378     78  | 8878    5578    WX   |111290   7778    wx   |
25    19    EM  | 57   39     9  | 89    59    Y   |121   79    y   |
26    1A   SUB  | 58   3A     :  | 90   5A     Z   |122   7A    z   |
27    1B   ESC  | 59   3B     ;  | 91    5B     [   |123   7B    {   |
2829    11CD    FGSS  | 6601   33CD     <=  | 9923   55CD     \]   |112245   77CD    |}   |
30    1E    RS  | 62   3E     >  | 94    5E     ^   |126   7E    ~   |
31----1F----US----63---3F-----?----95----5F-----_----127---7F---DEL---

Tabella 1.3: La tabella ASCII.

Alcuni elementi della tabella ASCII non corrispondono a caratteri alfanumerici (v. i primi 32 elementi della tab. 1.3), ma sono dei codici di controllo a cui è stato attribuito un significato particolare riportato nella tab. 1.4.
Codice--Significato-----------------|Codice--Significato----------|
NUL----null (carattere nullo)--------|--DC1---device control 1-----|
SOH    start of heading             |  DC2   device control 2     |
STX    start of text               |  DC3   device control 3     |
ETX    end of text                |  DC4   device control 4     |
EEONTQ    enendquoirfy transmission          | NASYKN    nseygnacrtihveronacokunso iwdlleedge   |
ACK    acknowledge                | ETB    end of transmitted block
BEL    bell                      | CAN    cancel              |
TBASB    bcaacrkasttpaecree di tabulazione       |  ESUMB    esnudb ostfit muetdeium       |
|LF    line feed                   |  ESC   escape              |
VT     vertical tab (tabulazione verticale)  FS    file separator        |
|FF    form feed (salto pagina)      |  GS    group separator       |
CRSO     cashririfta oguet return              |  RUSS    ruencoirtd se speaparartaotorr      |
|SI    shift in                   |  DEL   delete              |
DLE----data link-escape------------------------------------------

Tabella 1.4: I codici di controllo della tabella ASCII.

Dunque, anche le sequenze di caratteri alfanumerici, dette stringhe, vengono rappresentate e gestite dall’elaboratore come sequenze numeriche. In particolare, secondo la conversione ASCII, la stringa costituita da “prova” è convertita nella seguente sequenza numerica
stringa          p         r         o         v          a
esadecimale     70        72        6F         76        61
binario      01110000  0111 0010   0110 1111  01110110  01100001
È evidente che 128 codici (di cui alcuni soltanto di controllo) non possono essere sufficienti per codificare qualunque carattere utilizzato dalle varie lingue esistenti. Sono così stati aggiunti altri 128 codici per la rappresentazione di caratteri particolari, definendo l’ASCII esteso (formato da un totale di 256 codici). Esistono varie tabelle ASCII estese, dipendentemente dal set di caratteri aggiunti ai 128 di base (ASCII standard). Questo crea però delle difficoltà di comunicazione tra sistemi che utilizzano codifiche ASCII estese diverse, poiché uno stesso codice ASCII può corrispondere ad un carattere diverso dipendentemente dalla tabella ASCII estesa considerata per la codifica/decodifica.