Il codice ASCII, letto aski, è il metodo di codifica più diffuso in informatica perché associa ai numeri binari tutte le lettere dell’alfabeto sia maiuscole che minuscole, i numeri che vanno da 0 a 9, diversi caratteri speciali e anche i pulsanti che premiano con la tastiera come Invio e Spazio.
La sigla ASCII sta per American Standard Code for Information Interchange cioè Codice standar americano per lo scambio di informazioni. Questo codice è molto importante perché tutti i dati salvati nelle memorie del computer come anche i programmi e i dati che vengono utilizzati sono rappresentati dalle cifre 0 e 1.
I componenti fisici del computer sono formati da milioni di transistor, dispositivi piccolissimi fatti di silicio che lasciano passare la corrente o la bloccano. I software sono in grado di verificare questi dispositivi e assegnargli un valore di 0 se sono spenti o 1 se sono accesi. Questi singoli valori vengono chiamati bit.
Il codice ASCII utilizza sempre un insieme di 8 bit, numeri a 8 cifre, per rappresentare tutti i caratteri, numeri e simboli che usiamo per scrivere al PC. Questo è utile perché il software scompone i numeri binari in 8 cifre e in base al valore gli attribuisce il significato.
Ovviamente a ciascun numero binario corrisponde sempre un numero decimale, cioè di base 10, che è quello che usiamo noi. Il Codice ASCII assegna a ciascun numero decimale il carattere corrispondente: i software leggono i caratteri che scriviamo, li convertono in numeri che vengono infine convertiti nel sistema binario. Quando il software legge i dati in memoria avviene il procedimento inverso: scompone i numeri binari in byte, li converte in numeri decimali e poi li converte nei caratteri o tipi di dato stabiliti.
Questa è la tabella con tutti i caratteri del codice ASCII standard.
Decimale | Carattere | Esadecimale | Binario |
---|---|---|---|
0 | NUL | 0 | 00000000 |
1 | SOH | 1 | 00000001 |
2 | STX | 2 | 00000010 |
3 | ETX | 3 | 00000011 |
4 | EOT | 4 | 00000100 |
5 | ENQ | 5 | 00000101 |
6 | ACK | 6 | 00000110 |
7 | BEL | 7 | 00000111 |
8 | BS | 8 | 00001000 |
9 | TAB | 9 | 00001001 |
10 | LF | 0A | 00001010 |
11 | VT | 0B | 00001011 |
12 | FF | 0C | 00001100 |
13 | CR | 0D | 00001101 |
14 | SO | 0E | 00001110 |
15 | SI | 0F | 00001111 |
16 | DLE | 10 | 00010000 |
17 | DC1 | 11 | 00010001 |
18 | DC2 | 12 | 00010010 |
19 | DC3 | 13 | 00010011 |
20 | DC4 | 14 | 00010100 |
21 | NAK | 15 | 00010101 |
22 | SYN | 16 | 00010110 |
23 | ETB | 17 | 00010111 |
24 | CAN | 18 | 00011000 |
25 | EM | 19 | 00011001 |
26 | SUB | 1A | 00011010 |
27 | ESC | 1B | 00011011 |
28 | FS | 1C | 00011100 |
29 | GS | 1D | 00011101 |
30 | RS | 1E | 00011110 |
31 | US | 1F | 00011111 |
32 | SPACE | 20 | 00100000 |
33 | ! | 21 | 00100001 |
34 | “ | 22 | 00100010 |
35 | # | 23 | 00100011 |
36 | $ | 24 | 00100100 |
37 | % | 25 | 00100101 |
38 | & | 26 | 00100110 |
39 | ‘ | 27 | 00100111 |
40 | ( | 28 | 00101000 |
41 | ) | 29 | 00101001 |
42 | * | 2A | 00101010 |
43 | + | 2B | 00101011 |
44 | , | 2C | 00101100 |
45 | – | 2D | 00101101 |
46 | . | 2E | 00101110 |
47 | / | 2F | 00101111 |
48 | 0 | 30 | 00110000 |
49 | 1 | 31 | 00110001 |
50 | 2 | 32 | 00110010 |
51 | 3 | 33 | 00110011 |
52 | 4 | 34 | 00110100 |
53 | 5 | 35 | 00110101 |
54 | 6 | 36 | 00110110 |
55 | 7 | 37 | 00110111 |
56 | 8 | 38 | 00111000 |
57 | 9 | 39 | 00111001 |
58 | : | 3A | 00111010 |
59 | ; | 3B | 00111011 |
60 | < | 3C | 00111100 |
61 | = | 3D | 00111101 |
62 | > | 3E | 00111110 |
63 | ? | 3F | 00111111 |
64 | @ | 40 | 01000000 |
65 | A | 41 | 01000001 |
66 | B | 42 | 01000010 |
67 | C | 43 | 01000011 |
68 | D | 44 | 01000100 |
69 | E | 45 | 01000101 |
70 | F | 46 | 01000110 |
71 | G | 47 | 01000111 |
72 | H | 48 | 01001000 |
73 | I | 49 | 01001001 |
74 | J | 4A | 01001010 |
75 | K | 4B | 01001011 |
76 | L | 4C | 01001100 |
77 | M | 4D | 01001101 |
78 | N | 4E | 01001110 |
79 | O | 4F | 01001111 |
80 | P | 50 | 01010000 |
81 | Q | 51 | 01010001 |
82 | R | 52 | 01010010 |
83 | S | 53 | 01010011 |
84 | T | 54 | 01010100 |
85 | U | 55 | 01010101 |
86 | V | 56 | 01010110 |
87 | W | 57 | 01010111 |
88 | X | 58 | 01011000 |
89 | Y | 59 | 01011001 |
90 | Z | 5A | 01011010 |
91 | [ | 5B | 01011011 |
92 | \ | 5C | 01011100 |
93 | ] | 5D | 01011101 |
94 | ^ | 5E | 01011110 |
95 | _ | 5F | 01011111 |
96 | ` | 60 | 01100000 |
97 | A | 61 | 01100001 |
98 | B | 62 | 01100010 |
99 | C | 63 | 01100011 |
100 | D | 64 | 01100100 |
101 | E | 65 | 01100101 |
102 | F | 66 | 01100110 |
103 | G | 67 | 01100111 |
104 | H | 68 | 01101000 |
105 | I | 69 | 01101001 |
106 | J | 6A | 01101010 |
107 | K | 6B | 01101011 |
108 | L | 6C | 01101100 |
109 | M | 6D | 01101101 |
110 | N | 6E | 01101110 |
111 | O | 6F | 01101111 |
112 | P | 70 | 01110000 |
113 | Q | 71 | 01110001 |
114 | R | 72 | 01110010 |
115 | S | 73 | 01110011 |
116 | T | 74 | 01110100 |
117 | U | 75 | 01110101 |
118 | V | 76 | 01110110 |
119 | W | 77 | 01110111 |
120 | X | 78 | 01111000 |
121 | Y | 79 | 01111001 |
122 | Z | 7A | 01111010 |
123 | { | 7B | 01111011 |
125 | } | 7D | 01111101 |
126 | ~ | 7E | 01111110 |
127 | DEL | 7F | 01111111 |
Estensione del codice ASCII e altri sistemi di codifica
Nella tabella mostrata sopra l’ottavo bit, cioè il primo a sinistra, è sempre 0. Questo perché in realtà il codice ASCII utilizza 7 bit, non 8, per rappresentare tutti i caratteri utilizzati nell’alfabeto americano. La prima edizione di questo codice risale al 1963 e l’ultimo aggiornamento al 1986.
Il fatto di avere un ottavo bit permette sia ai software di scomporre i numeri binari in byte e assegnargli i caratteri stabiliti sia di potere includere il codice ASCII in altri sistemi di codice molto più grandi e completi, come Unicode che utilizza non 1 ma fino a 4 byte in modo da avere fino a 1.114.112 codici diversi di cui 143.859 sono già stati stabiliti.
In questo caso il simbolo SPACE verrà letto sempre come 0100000, mentre tutti gli altri bit che sarebbero alla sinistra verranno letti tutti 0. In questo modo è stato possibile inserire i caratteri di molte altre lingue che non vengono utilizzate nell’alfabeto americano e neppure in quello europeo.
Riassumendo il codice ASCII standard è formato da 127 caratteri usati nell’alfabeto americano, quello esteso arriva ad avere 255 caratteri grazie all’ottavo bit e include anche le lettere accentate usate nel nostro alfabeto. Quest’ultimo costituisce anche i primi 255 codici dell’Unicode oggi.