💡
tecnologie3
  • Tecnologie
  • Codifica numeri
    • Conversione dei numeri con parte frazionaria
    • Esercizi numeri
  • Numeri interi e linguaggio C
  • La rappresentazione dei simboli alfanumerici
  • Funzione di conversione da alfanumerici a numerici - esempi in C
  • Codifica immagini e unità misura
  • Segnali, dall'analogico al digitale
  • Rappresentazione dei suoni
  • Rappresentazioni delle informazioni complesse
  • Riepilogo codifiche
  • ARCHITETTURA COMPUTER
    • Architettura generale
    • Memoria principale
    • Il processore
    • La memoria secondaria (di massa)
    • Periferiche (dispositivi) e loro controllo/1
    • Periferiche (dispositivi) e loro controllo/2
    • Esempio di Architettura Computer - Macchina von Neumann
    • I concetti chiave
    • Esercizi
  • Sistema Operativo
    • Il sistema operativo
    • Gestione dei processi
    • Gestione della memoria
    • I Gestori di Periferiche
    • Il modello di sicurezza di Unix/Linux
  • Esercitazione gestione processi
  • Esercitazione memoria
    • Svolgimento
    • Progetto calcolatore indirizzi fisici
  • Corso Linux base
    • Lavorare con testo: more, grep
    • Utilizzo pipe
    • Lavorare con il comando find
  • Tecnologie 2
  • Operating Systems: Three Easy Pieces
  • Computing for the Socio-Techno Web
  • Software libero ed istruzione
Powered by GitBook
On this page

Was this helpful?

La rappresentazione dei simboli alfanumerici

PreviousNumeri interi e linguaggio CNextFunzione di conversione da alfanumerici a numerici - esempi in C

Last updated 4 years ago

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).

Esempio: Il saluto 

Buongiorno Mondo! 

è codificato dalla sequenza dei 17 numeri corrispondenti ai 
caratteri che la compongono: 
66, 117, 111, 110, 103, 105, 111, 114, 110, 111, 32, 77, 111, 110, 100, 111, 33

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.

Ad esempio la codifica ASCII del numero decimale 360 è composta 
da una sequenza di tre valori (eventualmente esprimibili in formato binario):

51, 54, 48

ma la sua rappresentazione numerica è ovviamente costituita da un solo numero:

101101000

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 parola 

                                CIAO

è codificata in ASCII dalla seguente sequenza composta da 4 valori numerici: 

67, 73, 65, 79

Sommando 32 ai singoli elementi della sequenza si ottiene la nuova sequenza: 

99, 105, 97, 111

che, interpretata come successione di codici ASCII, rappresenta la parola 

                                ciao

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

Il codice numerico 191 rappresenta il simbolo «¿» nello standard 8859 parte 1, 
il simbolo «Ω» nello standard 8859 parte 7 e 
il simbolo «æ» nello standard 8859 parte 13.

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.

La parola greca (in questo caso composta da caratteri minuscoli) 

                                Εὕρηκα

è il famoso «eureka» attribuito ad Archimede ed è codificata in Unicode 
dalla seguente sequenza composta da 6 valori numerici: 

951, 965, 961, 951, 954, 945

APPROFONDIMENTI

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 () alcuni esempi in linguaggio C delle funzioni per eseguire queste conversioni.

Funzioni di conversione da alfanumerici a numerici
Elenco dei caratteri US-ASCII stampabili
TABELLA CODICI ASCII