Presentazione di PowerPoint - Home page istituzione trasparente

Transcript

Presentazione di PowerPoint - Home page istituzione trasparente
1.2d: La codifica
Digitale dei caratteri
Bibliografia
 Curtin, 3.6 (vecchie edizioni)
 Curtin, 2.5 (nuova edizione)
 CR pag. 9-14
12 ott 2011
 Questi lucidi
2
La codifica dei caratteri
 Un testo è rappresentato attraverso una
successione di caratteri
 Ogni carattere viene scelto all’interno di un
insieme finito e piuttosto ristretto (almeno per le
lingue basate sull'alfabeto latino) di simboli
dell’alfabeto della lingua
 Riapplichiamo il metodo di codifica generale
(ad ogni oggetto da codificare corrisponde
una successione di bit)
12 ott 2011
 Nel caso del semaforo, facevamo corrispondere
 Una combinazione diversa di 2 bit a ogni stato del semaforo
 Nel caso del testo, faremo corrispondere
 Una combinazione diversa di 8 bit a ogni simbolo da
rappresentare
3
La codifica dei caratteri
 Costruiremo cioè una
TABELLA DI CODIFICA DEI CARATTERI
che associ caratteri alfanumerici a gruppi di 8
bit
 Ad esempio:
01000001  A
01000010  B
12 ott 2011
01000011  C
01000100  D
… e così via
4
La codifica dei caratteri
 Perché 8 bit?
 Un testo è composto da
 26 caratteri alfabetici
 10 Simboli numerici
 Alcuni simboli di interpunzione
 Altri simboli (+ - & ^ ecc…)
12 ott 2011
 26 caratteri alfabetici in maiuscolo (retaggio di
quando non esistevano i word processor e
veniva utilizzato un unico font)
5
 Alcuni segnali di comando (“Vai a capo”,
“squilla il campanello”, “Ritorno di carrello”,
“TAB”, ecc.. anche questi ricordo di quando
l’unica unità di output era la telescrivente che
bisognava “comandare” in alcune operazioni)
La codifica dei caratteri
 Con parole binarie lunghe 8 bit, è possibile
rappresentare 256 alternative diverse (28=256)
da 00000000…
…a 11111111
12 ott 2011
passando per tutte le combinazioni intermedie
(00000001, 00000010, …)
6
 256 alternative sono sufficienti per “codificare” i
simboli coinvolti in un testo.
Tavola ASCII
 La codifica di riferimento, utilizzata dalla
maggior parte dei computer, è detta ASCII (si
legge 'aski‘, American Standard Code for
Information Interchange)
12 ott 2011
 Il codice ASCII era stato sviluppato
originariamente per l'uso delle macchine
telescriventi, e alcuni dei 32 caratteri di
controllo risentono ancora di questa eredità.
7
 I primi 32 numeri sono associati, anziché a
caratteri alfanumerici, ai cosiddetti 'caratteri di
controllo' (control characters), corrispondenti a
istruzioni quali 'a capo', 'ritorno indietro' e simili
Tavola ASCII
 CODICE ASCII: Ad ogni lettera corrisponde un
numero, dato dalla posizione della lettera nella
tabella.
 Ad esempio: “P” corrisponde al numero
01010000.
12 ott 2011
 Quando viene ordinato alfabeticamente un
testo, il computer segue l’ordine dato dalla
posizione dei caratteri nella tavola ASCII, per
cui “1P” precede “P1”
8
 1P è dato dal numero 00110001 01010000,
 mentre P1 dal numero 01010000 00110001 e il
primo è più piccolo del secondo).
Tavola ASCII
9
Esempio
 Il risultato? Una stringa di caratteri sarà rappresentata dal
computer come una successione di gruppi di 8 bit
O
01001111
G
G
01000111
01000111
I
01001001
00100000
P
I
01010000
01001001
O
01001111
V
E
01010110
01000101
 Consideriamo il problema inverso: data una sequenza di
bit, il testo che essa codifica può essere così ottenuto:
 Si divide la sequenza in gruppi di 8 bit
12 ott 2011
 Si determina il carattere corrispondente ad ogni byte
 Esempio:
 01101001 01101100 00100000 01010000 01101111 00101110

10
i
l
P
o
.
Una codifica per i numeri
 Il Codice ASCII presenta un valore per ognuno dei
10 simboli che corrispondono alle cifre decimali.
 Esercizio: 0  4810; 25010; 35110; 45210;
 Il numero 324 viene così rappresentato dalla
sequenza di 3 bytes:
00110011
5110
00110010
5010
00110100
5210
 Questa rappresentazione
12 ott 2011
 non è efficiente (Utilizza molti più bits di quanto sia
necessario)
11
 Non è adatta per eseguire le operazioni aritmetiche sui
numeri
 Per i numeri si utilizza una codifica diversa dalla
ASCII.
Tavola ASCII estesa
(ISO Latin1 a 8 bit)
 La
codifica
ASCII
originaria
faceva
corrispondere ad ogni carattere una parola
binaria di 7 bits (ciò permetteva di codificare
128 caratteri diversi)
12 ott 2011
 La codifica attualmente usata fa corrispondere
ad ogni carattere una parola binaria di 8 bits
(ciò permette di codificare 256 caratteri diversi)
ed è denominata ISO Latin 1.
12
 ISO
indica
l'approvazione
da
parte
dell'International Standardization Organization
e 'Latin 1' indica che si tratta della tabella di
riferimento per gli alfabeti di tipo latino.
12 ott 2011
Tavola ASCII estesa
(ISO Latin1 a 8 bit)
13
12 ott 2011
ASCII Estesa (usata da Windows)
14
Esercizi
 Scrivete le seguenti frasi usando solo i codici
ASCII e ISO Latin 1.
 ç è un simbolo sulla tastiera.
 Erdös è stato un importante matematico.
 5+9=14.
12 ott 2011
a≥b
15
Tavola UNICODE a 16 bits
 Pur avendo a disposizione 256 caratteri, il
codice ISO Latin 1 non può essere veramente
'universale‘
12 ott 2011
 Proprio per questo motivo, è stato avviato un
progetto estremamente ambizioso: definire una
tavola di codifica basata su 16 bit, che
consentono 65.536 diverse combinazioni di '0' e
'1‘ lunghe 16, e permettono dunque di
codificare oltre 65.000 caratteri.
16
 Questa tavola si chiama Unicode, comprende
finora (versione 2.0) 38.885 caratteri, e
rappresenta uno sforzo di sistematizzazione non
solo dal punto di vista informatico, ma anche
da quello linguistico.
Testi non formattati
 Un testo non formattato è memorizzato come
sequenza di caratteri (spazi e ritorni a capo
compresi)
 Ogni carattere è rappresentato con un codice
numerico
12 ott 2011
 Il codice più diffuso è il codice ASCII, in cui ad
ogni carattere è associato un numero
compreso tra 0 e 255
17
 Un codice emergente è l’UNICODE che
consente di rappresentare testi scritti in altri
alfabeti (quello arabo) o in ideogrammi (ad
esempio il cinese)
Testi formattati
 Un testo formattato viene invece memorizzato in
modo non standard, a seconda del
programma con cui è stato scritto (ad esempio
Word)
12 ott 2011
 Esistono dei formati standard di diffusione dei
testi (i più usati sono PostScript e PDF) utilizzati
per la pubblicazione di articoli su Internet
18
 Un altro formato per testi e ipertesti è HTML,
usato per scrivere le pagine web
Word Processor
 Un word processor è un programma per la
composizione, la gestione e l’impaginazione dei
testi
12 ott 2011
 Il testo viene trattato a livello di parola (da cui il
termine word processor), ma anche a livello
superiore (paragrafo, sezione, ecc.) ed inferiore
(singolo carattere)
19