La rappresentazione dei simboli alfanumerici
Last updated
Was this helpful?
Last updated
Was this helpful?
La necessità di memorizzare e trasmettere dati in forma testuale mediante sistemi computerizzati ha reso necessaria l’adozione di una codifica standard – naturalmente numerica – per i caratteri tipografici che compongono un testo. Nel 1967 è stato formalizzato il codice ASCII (American Standard Code for Information Interchange), che ancora oggi costituisce la base per la rappresentazione in forma numerica dei caratteri che compongono il testo (TABELLA 1).
I codici numerici compresi tra 0 e 31 rappresentano caratteri speciali che non possono essere visualizzati o stampati: un esempio significativo è dato dal codice numerico 10, un carattere speciale che indica il punto in cui una linea di testo – rappresentata altrimenti come una lunga sequenza di numeri – è interrotta per «andare a capo».
OSSERVAZIONE: La scelta di ricorrere ai numeri compresi tra 0 e 127 era inizialmente motivata dall'intenzione di utilizzare 7 bit per la codifica dei caratteri (2^7 -1 = 128 -1 = 127 è infatti il massimo numero rappresentabile con soli 7 bit).
OSSERVAZIONE: I dieci simboli che utilizziamo per scrivere i numeri (le cifre) sono rappresentabili nello standard ASCII da dieci codici numerici, uno per ciascuna cifra. La codifica di un numero come sequenza di cifre non è direttamente assimilabile al suo valore numerico espresso in base decimale o binaria.
I programmi per computer che «leggono» i dati numerici su cui operano da un dispositivo di input come la tastiera devono preventivamente convertire le sequenze di codici ASCII che rappresentano le cifre inserite nel corrispettivo formato numerico; per «scrivere» un risultato numerico su un dispositivo di output come il monitor occorre prima trasformarlo nelle sequenze di codici ASCII che rappresentano le singole cifre. Vedremo in seguito (Funzioni di conversione da alfanumerici a numerici) alcuni esempi in linguaggio C delle funzioni per eseguire queste conversioni.
Può sembrare che il ricorso a un codice come ASCII impieghi i numeri esclusivamente come simboli capaci di rappresentare adeguatamente i caratteri tipografici e al tempo stesso facilmente memorizzabili da parte di un computer. Ciò è solo parzialmente vero: per come è stato progettato lo standard ASCII, alcune tipiche operazioni sui caratteri alfabetici possono essere immediatamente tradotte in operazioni sui corrispondenti codici numerici. Per esempio: l’ordinamento alfabetico di due caratteri può essere stabilito confrontando i corrispettivi codici numerici. Un esempio meno immediato deriva dall’osservazione che, sommando o sottraendo 32 al codice ASCII di un carattere alfabetico, se ne ottiene rispettivamente la trasformazione da maiuscolo a minuscolo o, viceversa, da minuscolo a maiuscolo.
La naturale estensione del codice ASCII è lo standard ISO-8859 che, utilizzando 8 bit per la codifica di ogni simbolo, ha la possibilità di rappresentare 128 caratteri aggiuntivi; i codici numerici compresi tra 128 e 255 sono utilizzati in modo differenziato in funzione di insiemi di lingue aventi l’esigenza di includere simboli diversi (TABELLA 2):
Parte standard ISO-8859
Denominazione
Lingue principali
1
Latino-1 Europa occidentale
Danese, Olandese, Inglese, Francese, Finlandese, Tedesco, Islandese, Irlandese, Italiano, Norvegese, Portoghese, Romeno, Spagnolo, Catalano, Svedese, Albanese
2
Latino-2 Europa centrale
Bosniaco, Polacco, Croato, Ceco, Slovacco, Sloveno, Serbo, Ungherese
3
Latino-3 Europa meridionale
Turco, Maltese
4
Latino-4 Europa settentrionale
Estone, Lituano, Lettone, Groenlandese
5
Latino-Cirillico
Bielorusso, Bulgaro, Macedone, Russo, Serbo, Ucraino
6
Latino-Arabo
Lingue arabe
7
Latino-Greco
Greco
8
Latino-Ebraico
Israeliano
9
Latino-5 Turco
Turco
10
Latino-6 Nordico
Lingue nordiche
11
Latino-Thai
Thailandese
13
Latino-7 Baltico
Lingue baltiche
14
Latino-8 Celtico
Gaelico e Bretone
15
Latino-9
Revisione di Latino-1 con l’introduzione del simbolo «€» e la sostituzione di alcuni simboli poco utilizzati con altri del Francese e del Finlandese
La diffusa necessità di utilizzare simboli estranei all’alfabeto latino ha portato alla definizione di Unicode, uno standard di codifica dei caratteri alfanumerici capace di rappresentare tutti i simboli delle varie lingue del mondo. Ovviamente la codifica Unicode non è limitata ai numeri compresi tra 0 e 255 ed esistono varie tecniche di gestione di questa codifica multi-byte, la più diffusa delle quali è UTF-8, progettata in modo che i primi 256 simboli siano esattamente quelli previsti dallo standard ISO 8859-1.