La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Codificazione: perché si può codificare, cosa si può codificare V. Michele Abrusci, 20 maggio 2009, Corso di Fondamenti di Informatica DAMS."— 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: linverso 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 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 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 zero1 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 unoun bit, numeri < due 11 tredue bit, numeri < quattro 101 cinque 110 sei 111 settetre bit, numeri < otto ecc. …n bit, numeri < 2 n ….

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 (= 2 7 ) 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 2 16 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) n 1, n 2,…, n k,… 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 n 1, eleva il secondo numero primo a n 2, eleva il terzo numero primo a n 3, …, 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 V. Michele Abrusci, 20 maggio 2009, Corso di Fondamenti di Informatica DAMS."

Presentazioni simili


Annunci Google