Il codice ASCII

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.

DecimaleCarattereEsadecimaleBinario
0NUL000000000
1SOH100000001
2STX200000010
3ETX300000011
4EOT400000100
5ENQ500000101
6ACK600000110
7BEL700000111
8BS800001000
9TAB900001001
10LF0A00001010
11VT0B00001011
12FF0C00001100
13CR0D00001101
14SO0E00001110
15SI0F00001111
16DLE1000010000
17DC11100010001
18DC21200010010
19DC31300010011
20DC41400010100
21NAK1500010101
22SYN1600010110
23ETB1700010111
24CAN1800011000
25EM1900011001
26SUB1A00011010
27ESC1B00011011
28FS1C00011100
29GS1D00011101
30RS1E00011110
31US1F00011111
32SPACE2000100000
33!2100100001
342200100010
35#2300100011
36$2400100100
37%2500100101
38&2600100110
392700100111
40(2800101000
41)2900101001
42*2A00101010
43+2B00101011
44,2C00101100
452D00101101
46.2E00101110
47/2F00101111
4803000110000
4913100110001
5023200110010
5133300110011
5243400110100
5353500110101
5463600110110
5573700110111
5683800111000
5793900111001
58:3A00111010
59;3B00111011
60<3C00111100
61=3D00111101
62>3E00111110
63?3F00111111
64@4001000000
65A4101000001
66B4201000010
67C4301000011
68D4401000100
69E4501000101
70F4601000110
71G4701000111
72H4801001000
73I4901001001
74J4A01001010
75K4B01001011
76L4C01001100
77M4D01001101
78N4E01001110
79O4F01001111
80P5001010000
81Q5101010001
82R5201010010
83S5301010011
84T5401010100
85U5501010101
86V5601010110
87W5701010111
88X5801011000
89Y5901011001
90Z5A01011010
91[5B01011011
92\5C01011100
93]5D01011101
94^5E01011110
95_5F01011111
96`6001100000
97A6101100001
98B6201100010
99C6301100011
100D6401100100
101E6501100101
102F6601100110
103G6701100111
104H6801101000
105I6901101001
106J6A01101010
107K6B01101011
108L6C01101100
109M6D01101101
110N6E01101110
111O6F01101111
112P7001110000
113Q7101110001
114R7201110010
115S7301110011
116T7401110100
117U7501110101
118V7601110110
119W7701110111
120X7801111000
121Y7901111001
122Z7A01111010
123{7B01111011
125}7D01111101
126~7E01111110
127DEL7F01111111

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.