8. I codici ASCII e Unicode
A ogni carattere (alfabetico, numerico, speciale) della tastiera si assegna un codice convenzionale.
La prima codifica universalmente accettata fu la cosiddetta ASCII
(ASCII = American Standard Code for Information Interchange).
Ogni carattere vi veniva rappresentato per mezzo di 1 Byte (=sequenza di 8 bit).
Osserviamo che una sequenza di 8 bit consente esattamente 28=256 combinazioni diverse;
quindi, una codifica a 8 bit può coinvolgere al massimo 256 differenti caratteri, non di più.
|
contiene i caratteri, alfanumerici e speciali, di uso più comune; in essa, i caratteri codificati sono in numero di 128.
Eccone qui a destra una parte. Se vuoi vedere la tabella completa, clicca QUI.
|
Char |
Byte |
Dec |
Hex |
Char |
Byte |
Dec |
Hex |
|||||
|
0 |
0011 0000 |
48 |
30 |
[ |
0101 1011 |
91 |
5B |
||||||
|
1 |
0011 0001 |
49 |
31 |
\ |
0101 1100 |
92 |
5C |
||||||
|
2 |
0011 0010 |
50 |
32 |
] |
0101 1101 |
93 |
5D |
||||||
|
3 |
0011 0011 |
51 |
33 |
^ |
0101 1110 |
94 |
5E |
||||||
|
4 |
0011 0100 |
52 |
34 |
… |
… |
… |
… |
||||||
|
5 |
0011 0101 |
53 |
35 |
… |
… |
… |
… |
||||||
|
6 |
0011 0110 |
54 |
36 |
a |
0110 0001 |
97 |
61 |
||||||
|
7 |
0011 0111 |
55 |
37 |
b |
0110 0010 |
98 |
62 |
||||||
|
8 |
0011 1000 |
56 |
38 |
c |
0110 0011 |
99 |
63 |
||||||
|
9 |
0011 1001 |
57 |
39 |
d |
0110 0100 |
100 |
64 |
||||||
|
… |
… |
… |
… |
… |
… |
… |
… |
||||||
|
@ |
0100 0000 |
64 |
40 |
{ |
0111 1011 |
123 |
7B |
||||||
|
A |
0100 0001 |
65 |
41 |
| |
0111 1100 |
124 |
7C |
||||||
|
B |
0100 0010 |
66 |
42 |
} |
0111 1101 |
125 |
7D |
||||||
|
C |
0100 0011 |
67 |
43 |
~ |
0111 1110 |
126 |
7E |
||||||
|
D |
0100 0100 |
68 |
44 |
Del |
0111 1111 |
127 |
7F |
||||||
|
… |
… |
… |
… |
… |
… |
… |
… |
||||||
|
Char = carattere, Dec = codice decimale, Hex = codice esadecimale |
|||||||||||||
|
|
|||||||||||||
|
Si passò poi alla TABELLA ASCII ESTESA, di cui nacquero (sigh!) diverse versioni, a seconda dell'area geografica (e non solo).
Ecco qui a destra una piccola parte della tabella ASCII ESTESA in uso in EUROPA OCCIDENTALE.
Se vuoi vedere la tabella completa, clicca QUI.
Noterai la presenza di caratteri tipici delle lingue europee, ad esempio le vocali con la dieresi usate in Tedesco, la "c" con "cediglia" del Francese, il punto interrogativo rovesciato dello Spagnolo … |
Char |
Byte |
Dec |
Hex |
|||||||||
|
ü |
1000 0001 |
129 |
81 |
||||||||||
|
é |
1000 0010 |
130 |
82 |
||||||||||
|
... |
… |
… |
… |
||||||||||
|
ç |
1000 0111 |
135 |
87 |
||||||||||
|
... |
… |
… |
… |
||||||||||
|
¿ |
1010 1000 |
168 |
A8 |
||||||||||
|
... |
… |
… |
… |
||||||||||
|
|
1010 1011 |
171 |
AB |
||||||||||
A partire dal 1991 fu sviluppato un nuovo standard, lo standard UNICODE.
L’idea iniziale era di rappresentare ogni carattere non più con 1, ma con 2 byte.
Con 2 byte, ossia con una sequenza di 16 bit, le combinazioni possibili sono 216=65536.
Si sarebbero così potuti comprendere tutti gli ideogrammi cinesi e giapponesi, tutti i caratteri
dell'alfabeto cirillico, di quello arabo, di quello ebraico, ecc. ... in un codice unico a livello mondiale.
Anche il problema della coesistenza di più tabelle ASCII estese differenti sarebbe stato superato.
L’aumento enorme della capienza delle memorie di massa, che nel frattempo si era verificato,
avrebbe reso poco rilevante la questione della maggiore occupazione di memoria.
Il progetto UNICODE subì negli anni svariati aggiornamenti, ed è tuttora in evoluzione.
Il suo campo d’azione include non solo le varie lingue vive (anche quelle meno diffuse), ma pure:
le lingue morte, simboli di varia natura (es. matematici e chimici), l'alfabeto Braille, ideogrammi ecc.
In definitiva, Unicode prevede oggi una codifica che va a utilizzare fino a 21 bit.
Di tutte queste questioni si occupa l’associazione internazionale Unicode Consortium.