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 235 10 2.2 + 10 1.3 + 10 0.5 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 498707021

7 Si può fare con qualunque base, anche con 2 Rappresentare quarantuno in base 2 2 5.1 + 2 4.0 + 2 3.1+ 2 2.0 + 2 1.0 + 2 0.1 32.1 + 16.0+ 8.1 + 4.0 + 2.0 + 1.1 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 101001

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: 1010101 oppure 100100100

9 Successioni finite di bit I numeri dunque possono essere rappresentati (codificati) mediante successioni finite di bit 0 zero 1 unoun bit, numeri < 2 1 10 due 11 tredue bit, numeri < 2 2 100 quattro 101 cinque 110 sei 111 settetre bit, numeri < 2 3 1000 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 65536 caratteri) (UNICODE) …

12 Simboli ASCII (da 0 a 41) ASCII Simb. ASCII Simb. ASCII Simb. 0000000 NUL 0001110 SO 0011100 FS 0000001 SOH 0001111 SI 0011101 GS 0000010 STX 0010000 DLE 0011110 RS 0000011 ETX 0010001 DC1 0011111 US 0000100 EOT 0010010 DC2 0100000 SP 0000101 ENQ 0010011 DC3 0100001 ! 0000110 ACK 0010011 DC4 0100010 " 0000111 BEL 0010101 NAK 0100011 # 0001000 BS 0010110 SYN 0100100 $ 0001001 HT 0010111 ETB 0100101 % 0001010 NL 0011000 CAN 0100110 & 0001011 VT 0011001 EM 0100111 ' 0001100 NP 0011010 SUB 0101000 ( 0001101 CR 0011011 ESC 0101001 )

13 Codici ASCII (da 42 a 84) ASCII Simb. ASCII Simb. ASCII Simb. 0101010 * 0111001 9 1000111 G 0101011 + 0111010 : 1001000 H 0101100, 0111011 ; 1001001 I 0101101 - 0111100 < 1001010 J 0101110. 0111101 = 1001011 K 0101111 / 0111110 > 1001100 L 0110000 0 0111111 ? 1001101 M 0110001 1 1000000 @ 1001110 N 0110010 2 1000001 A 1001111 O 0110011 3 1000010 B 1010000 P 0110100 4 1000011 C 1010001 Q 0110101 5 1000100 D 1010010 R 0110110 6 1000101 E 1010011 S 0111000 8 1000110 F 1010100 T

14 Codici ASCII (da 85 a 127) ASCII Simb. ASCII Simb. ASCII Simb. 1010101 U 1100011 c 1110001 q 1010110 V 1100100 d 1110010 r 1010111 W 1100101 e 1110011 s 1011000 X 1100110 f 1110100 t 1011001 Y 1100111 g 1110101 u 1011010 Z 1101000 h 1110110 v 1011011 [ 1101001 i 1110111 w 1011100 \ 1101010 j 1111000 x 1011101 ] 1101011 k 1111001 y 1011110 ^ 1101100 l 1111010 z 1011111 _ 1101101 m 1111011 { 1100000 ` 1101110 n 1111100 ¦ 1100001 a 1101111 o 1111101 } 1100010 b 1110000 p 1111110 ~ 1111111 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