1.2d: La codifica Digitale dei caratteri

Похожие документы
1.2d: La codifica Digitale dei caratteri

Prof. Alberto Postiglione Scienze della Comunicazione. Università degli Studi di Salerno

Analogico vs digitale

La rappresentazione delle informazioni

L'Informazione e la sua Codifica. Maurizio Palesi

La rappresentazione delle informazioni

L'Informazione e la sua Codifica. Maurizio Palesi

Codifica dell Informazione

Codifica dell Informazione

Rappresentazione di dati: caratteri. Appunti a cura del prof. Ing. Mario Catalano

La codifica dei caratteri di un testo

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Architettura di un elaboratore. Rappresentazione dell informazione digitale

Fondamenti di Informatica

La codifica del testo

Codifica binaria dell informazione

La codifica digitale del testo

Prof. Maristella Agosti, Ing. Marco Dussin

La Rappresentazione dell Informazione

Numeri e caratteri in binario. Prof.ssa Antonella Serra

ALGORITMI: PROPRIETÀ FONDAMENTALI

Rappresentazione di dati: numerazione binaria. Appunti per la cl. 3 Di A cura del prof. Ing. Mario Catalano

La rappresentazione dell informazione. Capitolo 5 Fluency Conoscere e usare l informatica

Algoritmi Istruzioni che operano su dati. Per scrivere un programma è necessario. che l esecutore automatico sia in grado di.

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

La codifica. dell informazione

La codifica digitale

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

LA CODIFICA DELL INFORMAZIONE

La codifica dell informazione

Linguistica Computazionale

Транскрипт:

1.2d: La codifica Digitale dei caratteri

2 12 ott 2011 Bibliografia Curtin, 3.6 (vecchie edizioni) Curtin, 2.5 (nuova edizione) CR pag. 9-14 Questi lucidi

3 12 ott 2011 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) 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

12 ott 2011 La codifica dei caratteri Costruiremo cioè una TABELLA DI CODIFICA DEI CARATTERI che associ caratteri alfanumerici a gruppi di 8 bit 4 Ad esempio: e così via 01000001 A 01000010 B 01000011 C 01000100 D

Codifica binaria dei caratteri Quanti sono gli oggetti compresi nell insieme? 26 lettere maiuscole + 26 minuscole 52 10 cifre Circa 30 segni d interpunzione Circa 30 caratteri di controllo (EOF, CR, LF, ) circa 120 oggetti complessivi k = log 2 120 = 7 Codice ASCII: utilizza 7 bit e quindi può rappresentare al massimo 2 7 =128 caratteri Con 8 bit (= byte) rappresento 256 caratteri (ASCII esteso) Si stanno diffondendo codici più estesi (e.g. UNICODE) per rappresentare anche i caratteri delle lingue orientali

6 12 ott 2011 La codifica dei caratteri Con parole binarie lunghe 8 bit, è possibile rappresentare 256 alternative diverse (2 8 =256) da 00000000 a 11111111 passando per tutte le combinazioni intermedie (00000001, 00000010, ) 256 alternative sono sufficienti per codificare i simboli coinvolti in un testo.

12 ott 2011 Tavola ASCII La codifica di riferimento, utilizzata dalla maggior parte dei computer, è detta ASCII (si legge 'aski, American Standard Code for Information Interchange) 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

ASCII su 7 bit 1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000 010 sp! " # $ % & ' ( ) * +, -. / 011 0 1 2 3 4 5 6 7 8 9 : ; < = >? 100 @ A B C D E F G H I J K L M N O 101 P Q R S T U V W X Y Z [ \ ] ^ _ 110 ` a b c d e f g h I j k l m n o 111 p q r s t u v w x Y z { } ~ can c

9 12 ott 2011 Tavola ASCII CODICE ASCII: Ad ogni lettera corrisponde un numero, dato dalla posizione della lettera nella tabella. Ad esempio: P corrisponde al numero 1010000. Quando viene ordinato alfabeticamente un testo, il computer segue l ordine dato dalla posizione dei caratteri nella tavola ASCII, per cui 1P precede P1 1P è dato dal numero 0110001 1010000, mentre P1 dal numero 1010000 0110001 e il primo è più piccolo del secondo).

10 12 ott 2011 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) 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. 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.

11 12 ott 2011 ASCII Estesa (usata da Windows)

12 Tavola ASCII a 8 bit

13 12 ott 2011 Tavola ASCII estesa (ISO Latin1 a 8 bit)

12 ott 2011 Esempio Il risultato? Una stringa di caratteri sarà rappresentata dal computer come una successione di gruppi di 8 bit O G G I P I O V E 01001111 01000111 01000111 01001001 00100000 01010000 01001001 01001111 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 14 Si determina il carattere corrispondente ad ogni byte Esempio: 01101001 01101100 00100000 01010000 01101111 00101110 i l P o.

12 ott 2011 Una codifica per i numeri Il Codice ASCII presenta un valore per ognuno dei 10 simboli che corrispondono alle cifre decimali. Esercizio: 0 48 10 ; 2 50 10 ; 3 51 10 ; 4 52 10 ; Il numero 324 viene così rappresentato dalla sequenza di 3 bytes: 00110011 00110010 00110100 51 10 50 10 52 10 Questa rappresentazione non è efficiente (Utilizza molti più bits di quanto sia necessario) Non è adatta per eseguire le operazioni aritmetiche sui numeri 15 Per i numeri si utilizza una codifica diversa dalla ASCII.

16 12 ott 2011 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. a b

12 ott 2011 Tavola UNICODE a 16 bits 17 Pur avendo a disposizione 256 caratteri, il codice ISO Latin 1 non può essere veramente 'universale 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. 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.

18 12 ott 2011 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 Il codice più diffuso è il codice ASCII, in cui ad ogni carattere è associato un numero compreso tra 0 e 255 Un codice emergente è l UNICODE che consente di rappresentare testi scritti in altri alfabeti (quello arabo) o in ideogrammi (ad esempio il cinese)

19 12 ott 2011 Testi formattati Un testo formattato viene invece memorizzato in modo non standard, a seconda del programma con cui è stato scritto (ad esempio Word) Esistono dei formati standard di diffusione dei testi (i più usati sono PostScript e PDF) utilizzati per la pubblicazione di articoli su Internet Un altro formato per testi e ipertesti è HTML, usato per scrivere le pagine web

20 12 ott 2011 Word Processor Un word processor è un programma per la composizione, la gestione e l impaginazione dei testi 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)

Esempio Come ridurre il numero di bit successione di un milione di caratteri, ognuno scelto dall insieme {A, C, G, T}; la frequenza dei quattro caratteri all interno della successione non è uguale: A si presenta nel 50% dei casi, C nel 25%, G e T solo nel 12.5% dei casi. Codifica digitale a lunghezza costante due bit per ciascuno dei simboli, per esempio: A = 00, C = 01, G = 10 e T = 11; la lunghezza complessiva della successione è quindi pari a 2 milioni di bit. Codifica a lunghezza variabile (che tenga conto della distribuzione) A = 0, C = 10, G = 110 e T = 111; la lunghezza complessiva della successione è di 1.75 milioni di bit (1 50% + 2 25% + 3 12.5% + 3 12.5%) bit/carattere 1 milione di caratteri Il cambiamento di codifica permette di ridurre il numero di bit utilizzato senza perdere informazione.

La compressione dei dati Gli algoritmi di compressione dei dati possono essere distinti in due categorie fondamentali Compressione lossless, se non provoca la perdita di informazione Compressione lossy, se provoca la perdita di informazione Gli algoritmi di compressione lossless sfruttano le regolarità nei dati RLE (Run Length Encoding): successioni di n simboli uguali vengono rappresentati con una coppia <simbolo, n> Tecniche basate su dizionario: sequenze di simboli ripetute trovate analizzando i dati sono sostituite con simboli elementari memorizzando le corrispondenze in un dizionario Gli algoritmi di compressione lossy sono specifici per i diversi domini applicativi.

Un semplice esempio con dizionario Compressione lossless con tecnica basata su un dizionario Testo di esempio: I re di Francia della dinastia Carolingia sono: Carlo II, Luigi II di Francia, Luigi III di Francia, Carlomanno di Francia, Carlo III detto il grosso, Odo, Carlo III detto il semplice, Roberto I di Francia, Rodolfo Duca di Borgogna, Luigi IV di Francia, Lotario di Francia, Luigi V di Francia (lunghezza: 292 caratteri) Analisi delle regolarità presenti nel testo: Si individuano le sequenze ripetute (parole) contando le ripetizioni e si compila il dizionario (vedere tabella) Si assegna un simbolo che la sostituisce ad ogni parola Il testo diventa: I re 1 2 della 1nastia Carolingia sono: 5 3, 4 3 1 2, 4 3I 1 2, 5manno 1 2, 5 3I 6 7 grosso, Odo, 5 3I 6 7 semplice, Roberto I 1 2, Rodolfo Duca 1 Borgogna, 4 IV 1 2, Lotario 1 2, 4 V 1 2 (lunghezza: 187 caratteri + 35 caratteri per il dizionario = 222 caratteri - 76% della lunghezza originaria) Un testo più lungo permette una efficienza maggiore! Indice Parola N 1 di 10 2 Francia 8 3 II 5 4 Luigi 4 5 Carlo 4 6 detto 2 7 il 2