La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Codificazione: perché si può codificare, cosa si può codificare

Presentazioni simili


Presentazione sul tema: "Codificazione: perché si può codificare, cosa si può codificare"— Transcript della presentazione:

1 Codificazione: perché si può codificare, cosa si può codificare
V. Michele Abrusci, 20 maggio 2009, Corso di Fondamenti di Informatica DAMS

2 Codificare Oggetti  Codici : “codificazione”
Codici  Oggetti : “decodificazione” Codificazione: Oggetti diversi  codici diversi Ogni oggetto ha un codice La codificazione deve essere meccanica Una funzione iniettiva, totale, calcolabile

3 Decodificazione Decodificare: l’inverso di codificare
Oggetto  codice (oggetto)  oggetto f : codificazione g : decodificazione g(f(a)) = a oggetto a, sua codifica f(a), decodifica g(f(a)) f(g(b)) = b codice b, sua decodifica g(b), codifica f(g(b)

4 Esempio: come rappresentare i numeri
Codifica: Numeri  rappresentazione dei numeri Decodifica: Rappresentazione dei numeri  numeri Rappresentazioni dei romani e dei greci: non buone… Rappresentazione degli arabi: basata su un teorema matematico

5 Una buona rappresentazione dei numeri: base 10
Rappresentare i numeri 235 Ogni numero può essere rappresentato come somma di potenze decrescenti di 10 moltiplicate per coefficienti minori di 10 Per scrivere un numero “in base 10” basta indicare i coefficienti di questa sua rappresentazione

6 Rappresentazione in base 10
Ci vogliono dieci simboli: 0 zero, 1 uno, 2 due, 3 tre, 4 quattro, 5 cinque, 6 sei, 7 sette, 8 otto, 9 nove Sono simboli arbitrariamente scelti, convenzionali Ogni altro numero è rappresentato (codificato) da una successione finita di questi simboli Ad esempio

7 Si può fare con qualunque base, anche con 2
Rappresentare “quarantuno” in base 2 Ogni numero si può rappresentare come somma di potenze decrescenti di due, moltiplicate per zero o per uno (per coefficienti minori di 2) Basta indicare i coefficienti nel loro ordine: Per “quarantuno”

8 Rappresentare i numeri in base 2
Ci vogliono due soli simboli: 0 zero 1 uno BIT Ogni numero può essere rappresentato come una successione finita di questi due simboli, di BIT Ad esempio: oppure

9 Successioni finite di bit
I numeri dunque possono essere rappresentati (codificati) mediante successioni finite di bit 0 zero 1 uno un bit , numeri < 21 10 due 11 tre due bit, numeri < 22 100 quattro 101 cinque 110 sei 111 sette tre bit , numeri < 23 1000 otto ecc. … n bit , numeri < 2n ….

10 Successioni finite di bit: trattate dai calcolatori “digitali”
Ciascun calcolatore digitale tratta solo bit e successioni finite di bit Un calcolatore a 16 bit ( a 32 bit, a 64 bit) tratta come una unità una successione di 16 bit ( o di 32 bit, o di 64 bit) Tutte le “informazioni”, tutti i “dati” per un calcolatore devono essere codificati in numeri, e rappresentati come successioni finite di bit.

11 I simboli di una tastiera possono essere codificati da numeri
I caratteri (i simboli di una tastiera, quelli usati per scrivere testi, compresi i simboli di controllo – spazio, fine riga, ecc. - ) possono essere codificati da numeri La codificazione standard: ASCII (American Standard Code for Information Interchange), una codifica per 128 (= 27) caratteri. I codici sono i numeri da 0 a 127, scritti in base 2 (quindi con sette bit) Con 8 bit si arriva a codificare 256 caratteri. Con 16 bit si arriva a codificare 216 caratteri (ossia caratteri) (UNICODE) …

12 Simboli ASCII (da 0 a 41) ASCII Simb. ASCII Simb. ASCII Simb.
NUL SO FS SOH SI GS STX DLE RS ETX DC US EOT DC SP ENQ DC ! ACK DC " BEL NAK # BS SYN $ HT ETB % NL CAN & VT EM ' NP SUB ( CR ESC )

13 Codici ASCII (da 42 a 84) ASCII Simb. ASCII Simb. ASCII Simb.
* G : H , ; I < J = K / > L ? M @ N A O B P C Q D R E S F T

14 Codici ASCII (da 85 a 127) ASCII Simb. ASCII Simb. ASCII Simb.
U c q V d r W e s X f t Y g u Z h v [ i w \ j x ] k y ^ l z _ m { ` n ¦ a o } b p ~ DEL

15 Codificare i testi… Se ad ogni carattere corrisponde un numero (ad es., il suo codice ASCII), un testo diviene una successione finita di numeri. I testi potranno essere codificati mediante numeri (rappresentati poi in base 2 come successioni finite di bit) … se si possono codificare mediante numeri tutte le possibili successioni finite di numeri. Si può? Sì, per un antico teorema aritmetico…

16 Codificazione delle successioni finite di numeri (di codici ASCII)
n1, n2,…, nk,… una successione finita di numeri ( se volete, di codici; ossia di caratteri). Diviene un numero (con le proprietà della codifica: a oggetti diversi, codici diversi) in questo modo: Eleva il primo numero primo a n1, eleva il secondo numero primo a n2 , eleva il terzo numero primo a n3 , …, e poi fai il prodotto di tutti questi valori: questo è il codice della successione Decodificazione: scomposizione in fattori primi, si trovano gli esponenti.

17 Risposta totale e risposte parziali
Questo teorema mostra che tutti i testi si possono codificare: un intero libro, qualsiasi, si codifica con un numero che poi è scrivibile come una successione finita di bit, che può essere decodificata e ri-fornisce il libro. “Digitalizzazione” In realtà, questa maniera di codificare è inefficiente: i codici sono numeri troppo grandi… Per gli usi correnti, ci sono particolari sistemi efficienti di codifica di testi però limitati.


Scaricare ppt "Codificazione: perché si può codificare, cosa si può codificare"

Presentazioni simili


Annunci Google