Elementi di Informatica e Programmazione
|
|
|
- Anna Maria Vitale
- 10 anni fa
- Просмотров:
Транскрипт
1 Elementi di Informatica e Programmazione La Codifica dell informazione (parte ) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Premessa Nella prima lezione è stato presentato il concetto astratto di calcolatore: non com è fatto o come funziona, ma che cos è in sé Concetto di problema (classe di domande omogenee, alle quali si possa dare risposta con una procedura uniforme), istanza, soluzione Concetto di algoritmo (specifica attraverso una sequenza di istruzioni come produrre una soluzione per ogni istanza) Il calcolatore come esecutore universale di algoritmi Ora cominciamo a esaminare come in pratica i calcolatori attuali sono costruiti, quali sono le loro componenti e le rispettive funzioni Cominciamo da un sistema di elaborazione elementare Docente: Daniela Fogli Daniela Fogli Elementi di Informatica e Programmazione 2 Architettura di Von Neumann Funzionamento dell architettura di Von Neumann Si basa sui seguenti principi: ambiente NOTE: CPU = Central Processing Unit (Unità centrale) detta oggi Microprocessore o processore Dispositivi di I/O Bus di sistema CPU Memoria Dati e istruzioni del programma da eseguire sono memorizzati nella memoria centrale Il processore (CPU) legge e scrive in memoria per acquisire le istruzioni da eseguire e i relativi dati e per memorizzare i risultati delle istruzioni eseguite Le istruzioni vengono acquisite ed eseguite dalla CPU in modo sequenziale. Reperimento dell istruzione da eseguire 2. Interpretazione dell istruzione 3. Esecuzione dell istruzione Le singole operazioni necessarie per l esecuzione delle istruzioni sono scandite da un orologio di sistema (clock) che definisce l evolvere del tempo all interno della macchina Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4
2 Programma e dati in memoria Bus Indirizzo In memoria viene caricata la forma binaria del programma zona della memoria che contiene le istruzioni zona della memoria che contiene i dati Insieme di collegamenti (linee) che permettono di trasferire dati da più sorgenti a più destinazioni (componenti del calcolatore) Il bus può essere suddiviso funzionalmente in: Bus dati (trasferisce i dati scambiati tra componenti) Bus indirizzi (trasferisce gli indirizzi della memoria o delle interfacce di ingresso-uscita coinvolte nel trasferimento) Bus comandi o di controllo (trasferisce segnali di controllo che regolano le operazioni del sistema di elaborazione) zona libera MEMORIA NB: non distinguibili in sé, è il programma che ne stabilisce il significato fine della premessa Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6 Il concetto di informazione e supporto Informazione: entità che può essere comunicata Non può esistere informazione senza supporto fisico: mezzo su cui l informazione può essere memorizzata e attraverso cui può essere trasmessa... Programmi, dati, risultati, indirizzi sono informazioni Ora vediamo come si RAPPRESENTANO nel calcolatore Un brano musicale Il CD in cui è memorizzato L aria attraverso cui viene trasmesso Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8
3 Proprietà di un supporto Codice Il supporto deve poter assumere configurazioni differenti altrimenti non è in grado di portare informazione Ad ogni configurazione viene associata una differente entità di informazione Il caso più semplice: 2 configurazioni possibili Esempi: interruttore acceso/spento, tensione sì/no, circuito aperto/chiuso Elemento di informazione rappresentato dalla configurazione del supporto (es. soccorso sanitario: ) Associazione simboli-significati: convenzione semantica Es. di convenzione semantica alternativa: soccorso sanitario: Successione di simboli Attività di interpretazione E necessario un codice: un insieme di regole che stabiliscono le associazioni fra configurazioni e entità di informazione Entità di informazione Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione Esempio di codice Codifica e Decodifica Attraverso il codice si attribuisce un significato convenzionale a ciascuna configurazione che il supporto può assumere Codifica = operazione con cui l informazione viene scritta (su un supporto fisico) Decodifica = operazione con cui l informazione viene letta (da un supporto fisico) ES., 2 dadi lettera A codifica Il numero dieci Informazione lettera B. decodifica Supporto fisico Daniela Fogli Elementi di Informatica e Programmazione Daniela Fogli Elementi di Informatica e Programmazione 2
4 Codifica dei dati e delle istruzioni Codifica binaria Programma = istruzioni che operano su dati Istruzioni e dati devono essere rappresentate (codificate) secondo il linguaggio noto all esecutore L esecutore deve essere infatti in grado di memorizzare e manipolare istruzioni e dati Nel caso del calcolatore, istruzioni e dati vengono codificati come sequenze di e Poiché il nostro esecutore utilizza componenti a 2 soli stati, è in grado di riconoscere solamente sequenze di e Alfabeto binario = {, } dove e sono dette cifre binarie o BIT (Binary digit) Importanza tecnologica: Dispositivi a due stati (livelli di tensione, magnetizzazione, ) Semplicità di realizzazione Affidabilità Tutti i calcolatori elettronici e i dispositivi magnetici di memorizzazione utilizzano tale corrispondenza Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4 Bit, Byte, KiloByte, MegaByte,... Il problema della rappresentazione Bit = oppure Byte = 8 bit = 2 3 KiloByte (KB) = 2 byte =.24 byte MegaByte (MB) = 2 2 byte = byte GigaByte (GB) = 2 3 byte = byte TeraByte (TB) = 2 4 byte = PetaByte (PB) = 2 5 byte = ExaByte (EB) = 2 6 byte = Insieme di oggetti che vogliamo rappresentare Problema: assegnare un codice univoco a tutti gli oggetti compresi in un insieme Insieme di simboli disponibili nel calcolatore = {, } Ho n oggetti da codificare e 2 soli simboli, quanto è la lunghezza k delle sequenze di simboli? Oppure: dispongo di sequenze di lunghezza k di simboli e, quanto è il numero n di oggetti che posso codificare? Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6
5 Codice binario a n bit Funzione: - dominio (insieme di oggetti da rappresentare) - codominio: insieme di tutte le possibili sequenze di n bit Funzione biunivoca tra il dominio e la sua immagine, detta insieme delle codifiche Esempio di codice binario a 3 bit: O O 2 O 3 insieme delle codifiche Codifica binaria Se k = Posso codificare due oggetti (n=2): al primo assegno il codice e al secondo assegno il codice Se k = 2 Posso codificare n=4 oggetti:,,, Se k = 3 Posso codificare n=8 oggetti:,,,,,,, Qual è la regola???? (Ipotesi implicita: i codici hanno tutti la stessa lunghezza) dominio codominio Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8 n = 2 k k = log 2 n Esempio: i mesi dell anno Se ho a disposizione sequenze di k = 5 bit, quanti elementi posso codificare? n = 2 5 = 32 elementi Se n = 28, di quanti bit ho bisogno (k) per codificarli tutti? k = log 2 28 = 7 e se n = 29??? Allora ho bisogno di bit in più! Ottengo uno spreco di configurazioni, perché con 8 bit posso codificare fino a 256 elementi Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre bit 2 gruppi Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre 3 bit 8 gruppi 2 bit 4 gruppi Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre 4 bit 6 gruppi mancano 4 configurazioni! Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione 2
6 Esempio: codifica BCD Tipologie di codici Cifra Codifica binaria decimale rappresentata b 3 b 2 b b codifiche non usate Nel seguito vedremo tipologie di rappresentazioni diverse: Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2] Disponendo di un numero di bit limitato: numeri naturali interi relativi [valore assoluto e segno, compl. a, compl. a 2] reali [virgola fissa e virgola mobile] valori logici, caratteri alfabetici, testi suoni, immagini e sequenze video codici per la rilevazione e correzione di errori Codici di compressione (senza con perdita) Daniela Fogli Elementi di Informatica e Programmazione 2 Daniela Fogli Elementi di Informatica e Programmazione 22 Tipologie di codici Sistema di numerazione posizionale Nel seguito vedremo tipologie di rappresentazioni diverse: Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2] Disponendo di un numero di bit limitato: numeri naturali interi relativi [valore assoluto e segno, compl. a, compl. a 2] reali [virgola fissa e virgola mobile] valori logici, caratteri alfabetici, testi suoni, immagini e sequenze video codici per la rilevazione e correzione di errori Codici di compressione (senza con perdita) Daniela Fogli Elementi di Informatica e Programmazione 23 Ad ogni cifra del numero è attribuito un peso a seconda della sua posizione all interno del numero Sistema di numerazione posizionale in base b: Numero N b = c k c k- c k-2 c.c - c -2 c c -h Dove c k è la cifra più significativa mentre c è la cifra meno significativa (prima della virgola) (c - è quella più significativa della parte frazionaria, c -h quella meno significativa) N b è il numero ottenuto facendo: c k xb k +c k- xb k- +c k-2 xb k-2 +c xb +c - xb - + +c -h xb -h Esempio: b=, il numero dove c 3 = 3, c 2 = 2, c = 5, c = 6, c - =2, c -2 =3, c -3 =4 rappresenta 3x 3 + 2x 2 + 5x + 6x + 2x - + 3x x -3 = = Daniela Fogli Elementi di Informatica e Programmazione 24
7 Le basi più comuni Notazione Binaria Base = 2 Cifre:, Se la base è b, allora le cifre che possono essere utilizzate per comporre un numero vanno da a b- Esempio: b =, cifre possibili: [,,2,3,4,5,6,7,8,9] Esempio: b = 2, cifre possibili: [,] Esempio: b = 8, cifre possibili: [,,2,3,4,5,6,7] Esempio: b = 6, cifre possibili: [,,2,3,4,5,6,7,8,9,A, B,C,D,E,F] Numeri espressi nella forma (a n a n- a a. a - a -2 ) due [a i {,}] il cui valore è (a n *2 n + a n- *2 n- + + a *2 + a - * a -2 *2-2 ) ESEMPIO N =. due N = = = dieci Daniela Fogli Elementi di Informatica e Programmazione 25 Daniela Fogli Elementi di Informatica e Programmazione 26 Conversione binario decimale Domande Come visto, la conversione si ottiene direttamente dalla definizione stessa di numero binario Scriviamo i numeri denotando la base attraverso il pedice: es.. due E facile convertirlo in un numero decimale facendo:. due = x2 3 + x2 2 + x2 + x2 + x2 - = 8 dieci + 4 dieci + dieci + + dieci +.5 dieci = 3.5 dieci Altri esempi:. due = x2 4 + x2 3 + x2 2 + x2 + x2 + x2 - + x2-2 = = 2.25 dieci. due = x2 5 + x2 4 + x2 3 + x2 2 + x2 + x2 + + x2-3 = = = 5.25 dieci due = x2 6 + x2 5 + x2 4 + x2 3 + x2 2 + x2 + x2 = 64 + = 65 dieci Il numero binario due è pari o dispari? A quale numero decimale corrisponde? due = (x2 8 + x2 7 + x2 6 + x2 5 + x2 4 + x2 3 + x2 2 + x2 + x2 ) dieci = ( ) dieci = 33 dieci Daniela Fogli Elementi di Informatica e Programmazione 27 Daniela Fogli Elementi di Informatica e Programmazione 28
8 Conversione decimale binario Conversione decimale binario metodo pratico Usare lo stesso metodo visto prima è complesso! 3 dieci dieci 2 dieci Esempio: 345 dieci = x + x + x = e poi bisogna fare le moltiplicazioni e l elevamento a potenza in base 2 e sommarne i risultati in base 2 Useremo un metodo pratico Dato un numero decimale N, innanzitutto distinguiamo parte intera e la parte frazionaria: N = I.F (ES: dato 56.5 dieci, convertiamo separatamente 56 e.5) Regola pratica per convertire la parte intera Si noti che: c k c k- c k-2 c si può scrivere anche come c k c k- c k-2 c xb+c Ad esempio: 3256 = 325x + 6 (in base b = dieci) 325 = 32x = 3x + 2 3=x + 3 In pratica, per isolare le cifre del numero, basta fare una serie di divisioni per la base e tenere il resto Alla fine, quando il numero è diventato, si leggono i resti dall ultimo al primo e si ottiene di nuovo il numero Daniela Fogli Elementi di Informatica e Programmazione 29 Daniela Fogli Elementi di Informatica e Programmazione 3 Conversione decimale binario metodo pratico Esempio di conversione da decimale a binario Allo stesso modo, per convertire un numero decimale in un numero binario basta fare una sequenza di divisioni (operazione div) per la base 2 e prendere il resto (operazione mod) Esempio: 56 div 2 = 28 & 56 mod 2 = (cifra meno significativa del numero bin) 28 div 2 = 4 & 28 mod 2 = 4 div 2 = 7 & 4 mod 2 = 7 div 2 = 3 & 7 mod 2 = 3 div 2 = & 3 mod 2 = div 2 = & mod 2 = (cifra più significativa del numero bin) 37 dieci =? due 37 div 2 = 68 & 37 mod 2 = 68 div 2 = 34 & 68 mod 2 = 34 div 2 = 7 & 34 mod 2 = 7 div 2 = 8 & 7 mod 2 = 8 div 2 = 4 & 8 mod 2 = 4 div 2 = 2 & 4 mod 2 = 2 div 2 = & 2 mod 2 = div 2 = & mod 2 = Si legge dal basso verso l alto!!! Si ottiene due = 32 dieci + 6 dieci + 8 dieci = 56 dieci Risultato = due Esercizio: riconvertire il risultato in decimale Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 32
9 Errore Tipico () Errore Tipico (2) E un errore considerare la prima cifra ottenuta come la più significativa 5 2 otterrei che vale 69! E un errore fermarsi quando si ottiene come dividendo otterrei (24) anziché (64+24) NB: se si è colti dal dubbio, ragionare: se continuassi il procedimento di divisioni successive aggiungerei zeri; questi non pesano solo se corrispondono alle posizioni più significative ( xyz )! NB: se si è colti dal dubbio, ricordare che la prima cifra significativa in questo caso vale sempre Daniela Fogli Elementi di Informatica e Programmazione 33 Daniela Fogli Elementi di Informatica e Programmazione 34 Regola pratica per convertire la parte frazionaria Conversione da decimale a binario della parte frazionaria F = a - *b - + a -2 *b a -n *b -n (dove b è la base) F * b = a - + a -2 *b a -n *b -(n-) la parte intera è a - (F*b - a - ) * b = a a -n *b -(n-2) la parte intera è a Es. con b =, sia F= x = la parte intera è 5.3 x = 3 +. la parte intera è 3. x = la parte intera è Le 3 cifre che costituiscono il numero Ma a noi interessa che la base di arrivo sia la base 2 Basta fare una sequenza di moltiplicazioni per 2 e prendere la parte intera di ciascun prodotto dalla cifra più significativa a quella meno significativa Esempio:.587 dieci binario?.587 x 2 =.74: p.f..74, parte intera (cifra più significativa).74 x 2 =.348: p.f..348, parte intera.348 x 2 =.696: p.f..696, parte intera.696 x 2 =.392: p.f..392, parte intera.392 x 2 =.784: p.f..784, parte intera.784 x 2 =.568: p.f..568, parte intera. Si ottiene. due con 5 cifre binarie dopo la virgola, oppure. due con 6 cifre binarie dopo la virgola, oppure In ogni caso c è un approssimazione Daniela Fogli Elementi di Informatica e Programmazione 35 Daniela Fogli Elementi di Informatica e Programmazione 36
10 Esempio: convertire dieci in binario Operazioni aritmetiche x 2 p.i. Operazioni +, -, *, / su numeri in base x 2 p.i..748 x 2 p.i. Valgono le stesse regole e proprietà delle operazioni in base x 2 p.i x 2 p.i dieci =. due (fermandosi al quinto bit per la parte frazionaria) Daniela Fogli Elementi di Informatica e Programmazione 37 Daniela Fogli Elementi di Informatica e Programmazione 38 Aritmetica binaria: addizione Aritmetica binaria: sottrazione + () Riporto: + = 2 dieci = due Esempio: + 6 = 2 - () Prestito (borrow): 2 2 (= 2 ) = 2 Esempio: 4 = 3 Daniela Fogli Elementi di Informatica e Programmazione 39 Daniela Fogli Elementi di Informatica e Programmazione 4
11 Aritmetica binaria: moltiplicazione Altri esempi di operazioni aritmetiche in base 2 * Esempio: * 58 = 638 addizione + = sottrazione - = moltiplicazione = Esercizio: controllare se i risultati sono corretti convertendo in decimale Daniela Fogli Elementi di Informatica e Programmazione 4 Daniela Fogli Elementi di Informatica e Programmazione 42 Numeri in base 8 (ottali) Numeri in base 6 (esadecimali) Le cifre: [,, 2, 3, 4, 5, 6, 7] 7 otto =? dieci otto = dieci 7 otto = 7 dieci 7 otto = ( x x 8 ) dieci = (8 + 7) dieci = 5 dieci 372 otto =? dieci 372 otto = (3 x x x 8 ) dieci = (3 x ) dieci = 25 dieci Le cifre: [,, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F] 7D2 sedici =? dieci 7 sedici = 7 dieci D sedici = 3 dieci 2 sedici = 2 dieci 7D2 sedici = (7 x x x 6 ) dieci = (7 x ) dieci = ( ) dieci = 22 dieci FA sedici =? dieci F sedici = 5 dieci A sedici = dieci FA sedici = (5 x 6 + x 6 ) dieci = (24 + ) dieci = 25 dieci Daniela Fogli Elementi di Informatica e Programmazione 43 Daniela Fogli Elementi di Informatica e Programmazione 44
12 I primi 6 numeri in base, 2, 8, e 6 Perché le basi 2, 8 e 6? Sistema di numerazione decimale binario ottale esadecimale A 3 B 2 4 C 3 5 D 4 6 E 5 7 F La rappresentazione binaria ha motivazioni di tipo tecnologico Le rappresentazioni ottali ed esadecimali sono utili per rappresentare sinteticamente i valori binari E facile convertire un numero in base 2 in un numero in base 8 o 6 Le cifre binarie si possono raggruppare a 3 a 3 e poi codificare con numeri ottali Le cifre binarie si possono raggruppare a 4 a 4 e poi codificare con numeri esadecimali Daniela Fogli Elementi di Informatica e Programmazione 45 Daniela Fogli Elementi di Informatica e Programmazione 46 Conversione binario ottale Conversione binario esadecimale Tabella di conversione due otto due otto due 2 otto due 3 otto due 4 otto due 5 otto due 6 otto due 7 otto. due = otto Separazione a gruppi di tre cifre binarie a partire dalla meno significativa per la parte intera, e dalla più significativa per la parte frazionaria (dalla virgola!) Nel gruppo più significativo della parte intera si possono aggiungere degli zeri a sinistra, nel meno significativo della frazionaria zeri a destra Tabella di conversione due sedici due sedici due 2 sedici due 3 sedici due 4 sedici due 5 sedici due 6 sedici due 7 sedici due 8 sedici due 9 sedici due A sedici due B sedici due C sedici due D sedici due E sedici due F sedici due = 7 B 4 sedici Si procede nello stesso modo, ma separando le cifre a gruppi di 4 anziché di 3 Daniela Fogli Elementi di Informatica e Programmazione 47 Daniela Fogli Elementi di Informatica e Programmazione 48
13 Errore Tipico Esecuzione corretta Convertire in notazione ottale il numero binario. L esercizio quindi va risolto così: Invece = 5*64 + 6* /8 = che sicuramente non può essere rappresentato con una parte intera di soli 8 bit!!! PARTIRE SEMPRE DAL PUNTO DI RADICE, EVENTUALMENTE COMPLETANDO LE CIFRE CON DEGLI ZERI PER OTTENERE LE TERNE: xxx xxx. yyy yyy infatti risulta = 2*64 + 7* /8 = e. 2 = = Daniela Fogli Elementi di Informatica e Programmazione 49 Daniela Fogli Elementi di Informatica e Programmazione 5 Un altro esempio Esempi di conversione esadecimale-binario Convertire in binario il numero in notazione ottale ). 3 A ) E ERRORE TIPICO: CONVERTIRE IN. infatti. 8 = /8 =.25 mentre. 2 = /2 =.5 ATTENZIONE!!! PARTIRE SEMPRE DAL PUNTO DI RADICE!!! xxxx. xxxx xxxx Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 52
14 Esercizio (in aula) Esercizio (in aula) Dato il numero binario due convertirlo in un numero ottale e poi in un numero esadecimale Convertire il numero ottale in numero decimale Numero ottale: 267 otto Numero esadecimale: 2B7 6 Numero decimale: 267 otto = (x x x8 + 7x8 ) dieci = ( ) dieci = 695 dieci Se la base considerata è b = 4, quali sono le cifre utilizzate per comporre i numeri? [,,2,3] Convertire il numero (32) quattro nel corrispondente numero in base 32 quattro = (x x x4 + x4 ) dieci = ( ) dieci = 2 dieci Qual è il numero massimo rappresentabile in base 3 con quattro cifre (espresso in base 3)? 2222 tre Daniela Fogli Elementi di Informatica e Programmazione 53 Daniela Fogli Elementi di Informatica e Programmazione 54 Esercizi. Convertire in formato decimale i seguenti numeri binari:,,,, 2. Convertire in decimale i seguenti numeri frazionari binari :.,.,. 3. Convertire in formato decimale i seguenti numeri ottali: 2, 23, 345, 333.4, Convertire in formato decimale i seguenti numeri esadecimali: 2.5, DAB, 5D, FFFF, 5A 5. Convertire in binario i seguenti numeri decimali (considerando 6 bit per la parte frazionaria): , , 67.72, Convertire in ottale e in esadecimale i numeri binari ottenuti dalla conversione dei numeri decimali di cui al punto precedente Daniela Fogli Elementi di Informatica e Programmazione 55
15 Elementi di Informatica e Programmazione La Codifica dell informazione (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Tipologie di codici Nel seguito vedremo tipologie di rappresentazioni diverse: Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2] Disponendo di un numero di bit limitato: numeri naturali interi relativi [valore assoluto e segno, compl. a, compl. a 2] reali [virgola fissa e virgola mobile] valori logici, caratteri alfabetici, testi suoni, immagini e sequenze video codici per la rilevazione e correzione di errori Codici di compressione (senza con perdita) Daniela Fogli Elementi di Informatica e Programmazione 2 Codifica dei numeri naturali Nota I numeri naturali si rappresentano normalmente, ma con n cifre binarie possiamo rappresentare solo i numeri da a N max Esempio: con 8 cifre (n=8) Con n cifre binarie si possono rappresentare i numeri da a 2 n - Esempio precedente n = 8 N max = 2 n - = 256- = N max = 255 Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4
16 Viceversa In generale Voglio rappresentare i numeri naturali da a N max. Di quante cifre binarie ho bisogno? Esempio Voglio rappresentare numeri da a 35 con n = 7 N max = 27 con n = 8 N max = 255 con n = 9 N max = 5 n = 9 Per poter rappresentare numeri naturali fino a N, serve un numero di cifre n tali che: N max N ovvero (2 n ) N Quindi deve essere Esempio precedente N = 35 n log 2 (N + ) n log 2 (35) = 8,. quindi n 9 Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6 Operazioni aritmetiche Tipologie di codici Nel caso di addizione, ho traboccamento (overflow) quando ho un riporto dal bit più significativo che non può essere rappresentato con le cifre a disposizione + 4 = 2 ()? Nel caso di sottrazione, un prestito dal bit più significativo indica un risultato negativo (non rappresentabile) 2 = 3 () 5? Nel seguito vedremo tipologie di rappresentazioni diverse: Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2] Disponendo di un numero di bit limitato: numeri naturali interi relativi [valore assoluto e segno, compl. a, compl. a 2] reali [virgola fissa e virgola mobile] valori logici, caratteri alfabetici, testi suoni, immagini e sequenze video codici per la rilevazione e correzione di errori Codici di compressione (senza con perdita) Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8
17 Codifica in valore assoluto e segno Codifica in valore assoluto e segno con 4 bit Il modo più semplice: indicare il segno seguito dal valore assoluto Se i bit disponibili per la codifica sono n si utilizza il primo bit della sequenza per indicare il segno ( per positivo e per negativo), e i restanti bit rappresentano il valore assoluto del numero Esempio: n = 8 (8 bit a disposizione) Rappresentazione di - segno - Numeri positivi Numeri negativi Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione Due note importanti Che problemi ha questa codifica? Esistono due codifiche per il valore + - I valori rappresentabili vanno: da - (2 n- - ) a + (2 n- - ) segno * * * * * * * n- bit: da a 2 n- - Questa tecnica non viene usata nel calcolatore Difficoltà nel fare le operazioni aritmetiche (es. la sottrazione) Es. (sottrazione di numeri entrambi positivi) a: b: - Dato che b > a, il segno del risultato è negativo, il valore assoluto è a-b: - = b a Daniela Fogli Elementi di Informatica e Programmazione Daniela Fogli Elementi di Informatica e Programmazione 2
18 Un altro esempio In generale Es. 2: Sottrazione di numeri entrambi positivi ma con a > b a: b: - Dato che a > b, il segno del risultato è positivo, il valore assoluto è - a = b Segno a Segno b segno(a-b) a-b + + a > b + a - b + + b > a - b - a a + b a + b - - a > b - a - b - - b > a + b - a Per il calcolatore le operazioni di somma e sottrazione sono complesse Si vuole una rappresentazione per la quale esista un unico semplice metodo per l addizione e la sottrazione a-b: +6 Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4 Codifica in complemento a Esempi Si ottiene facendo il complemento di tutti i bit (ovvero si sostituiscono gli con e gli con ) Es.: 5 dieci = due e 5 dieci = due Il bit più significativo indica se positivo o negativo I numeri positivi si rappresentano come nella rappresentazione in valore assoluto e segno I numeri negativi si rappresentano come complemento a del numero positivo corrispondente Ad esempio: n = 8 +2 dieci = due 2 dieci = due Anche questa volta il numero dieci ha due rappresentazioni: e Esercizio: n = dieci = due - 36 dieci =???????? due Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6
19 Operazioni aritmetiche Codifica in complemento a 2 La somma si ottiene facendo la somma degli addendi e poi sommando l eventuale riporto Esempi: dieci dieci = -28 dieci = -54 dieci () + () + = = -27 dieci +2 dieci Risultato OK Risultato ERRATO! (overflow) Sia n è il numero di bit utilizzati per la codifica I numeri positivi sono rappresentati normalmente (rappresentazione binaria dei numeri positivi) con il bit più significativo pari a I numeri negativi si ottengono come complemento a due del numero positivo x corrispondente, ovvero come 2 n x, e il bit più significativo è pari a Esempi (con n = 4): +6 dieci = (rappresentato normalmente) - 6 dieci = -6 dieci = c2 +3 dieci (rappresentato normalmente) - 3 dieci = 3-3 dieci = c2 E complicato? Somma più semplice ma con il problema di sommare il riporto Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8 Codifica in complemento a 2 con n=4 bit Due metodi pratici Bit di segno Numeri positivi Bit di segno Numeri negativi Unica rappresentazione del numero zero Esistono due metodi pratici equivalenti per calcolare il complemento a due di un numero x Metodo :. Effettuare il complemento a di x 2. Aggiungere Metodo 2:. Partendo da destra e andando verso sinistra, lasciare invariati tutti i bit fino al primo compreso 2. Complementare (invertire) tutti i bit successivi al primo NB: i numeri rappresentabili vanno da -2 n- (-8) a +(2 n- -) (+7) NB: il Metodo è quello utilizzato nei dispositivi elettronici Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione 2
20 Esempio di uso del metodo Esempio di uso dell algoritmo 2 Dato +6 dieci codificato su 4 bit Dato +6 dieci codificato su 4 bit Facendo il complemento a si ottiene Sommando al risultato si ottiene + = rimane invariato rimane invariato viene invertito viene invertito Risultato Daniela Fogli Elementi di Informatica e Programmazione 2 Daniela Fogli Elementi di Informatica e Programmazione 22 Altro esempio Errore Tipico A partire dalla codifica binaria di 5 dieci troviamo la codifica binaria di 5 dieci 5 dieci = nota 5 bit! Usando il primo metodo: complemento Aggiungo a Usando il secondo metodo: lascio invariato il primo a destra e complemento tutti gli altri ERRORE TIPICO: dimenticarsi che la rappresentazione in C.a 2 è relativa ad un numero di bit fissati!!! Es. Rappresentare in C. a 2 con 8 bit il numero decimale 3. 3 dieci = due quindi 3 dieci = due ma questo risulta un numero positivo!!! Svolgimento corretto: 3 dieci = due -3 dieci = Daniela Fogli Elementi di Informatica e Programmazione 23 Daniela Fogli Elementi di Informatica e Programmazione 24
21 Una visione globale Intervalli di rappresentazione: esempio Con n cifre si possono rappresentare 2 n numeri. Metà per i positivi e metà per i negativi, come in figura Rapp."normale n- - 2 n- (2 n- -) 2 3 C. A 2: 2 n - N Numeri positivi Numeri negativi NB: i numeri rappresentabili vanno da -2 n- a +(2 n- -) Supponiamo di avere una codifica con n=6 bit Rappresentazione in valore assoluto e segno: numeri compresi fra (2 5 -) e 2 5 -, ovvero fra e lo ha due rappresentazioni Rappresentazione in complemento a : numeri compresi fra (2 5 - ) e 2 5 -, ovvero fra e lo ha due rappresentazioni Rappresentazione in complemento a 2: numeri compresi fra 2 5 e 2 5 -, ovvero fra e lo ha una sola rappresentazione (in pratica, però, tipicamente si utilizzano i valori fra e per simmetria, così dato un qualsiasi numero anche il suo opposto è rappresentabile) Daniela Fogli Elementi di Informatica e Programmazione 25 Daniela Fogli Elementi di Informatica e Programmazione 26 Conversione da numero binario in complemento a 2 a numero decimale Altri esempi Si può usare la simmetria dell operazione in compl. a 2 Esempio: due è un numero negativo, pari a = -63 dieci Oppure si può usare la seguente regola: il valore di un numero c k c k- c c rappresentato in complemento a due è dato dalla seguente espressione -c k x2 k + c k- x2 k- + + c x2 + c x2 = -x2 4 + x2 = -6 + = -5 dieci = -x2 3 + x2 = = -6 dieci = -x2 7 + x2 5 + x2 3 + x2 = = -86 Esercizio proposto: ricavare il valore decimale col metodo della simmetria Esempio: due = (-)x2 6 + x2 = = - 63 dieci Daniela Fogli Elementi di Informatica e Programmazione 27 Daniela Fogli Elementi di Informatica e Programmazione 28
22 Perché il complemento a 2? Estensione del segno I calcolatori usano la rappresentazione in complemento a 2 si semplificano i circuiti che svolgono le operazioni aritmetiche in particolare la somma si effettua semplicemente come nel caso di numeri naturali, inoltre somma e sottrazione possono essere realizzate con un unico circuito: infatti: x - y = x + (-y) Estendiamo il segno per rappresentare un numero su n=k + d bit anziché su n=k bit -8 su n = 4 bit -8 su n = 8 bit Daniela Fogli Elementi di Informatica e Programmazione 29 Daniela Fogli Elementi di Informatica e Programmazione 3 Somma di numeri in complemento a 2 Esempio di addizione L addizione di due numeri rappresentati in complemento a 2 dà un risultato corretto, trascurando il riporto, a patto che il risultato sia compreso entro l intervallo dei numeri rappresentabili n = 8 bit, posso rappresentare i numeri da 2 7 a (+5) (+8) (+3) (+5) (-8) (-3) Usando n = 6 bit, l intervallo dei numeri rappresentabili va da 2 5 a , ovvero da 32 a +3 Vogliamo calcolare = 26 + (-3) = = Il riporto viene trascurato (3 = ) È nell intervallo dei numeri rappresentabili Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 32
23 Overflow Esempio di overflow Bit di segno La somma di due numeri interi positivi o di due numeri interi negativi può dar luogo ad un intero non rappresentabile con i bit a disposizione Questo dà luogo a ciò che si chiama overflow (traboccamento) In caso di overflow, il risultato di un operazione non è valido Esempio: supponiamo di avere a disposizione 8 bit per rappresentare gli interi ( bit per il segno e 7 bit per il valore) Sommiamo a (+27) il numero (+) otteniamo un numero negativo (-28) invece di = Il risultato ha segno negativo nonostante gli addendi siano entrambi positivi Daniela Fogli Elementi di Informatica e Programmazione 33 Daniela Fogli Elementi di Informatica e Programmazione 34 Regola per la determinazione dell overflow Se gli addendi hanno segno discorde non si ha mai overflow: MAX (+) MIN (-) N N2 Se gli addendi hanno segno concorde si ha overflow se il segno del risultato è diverso dal segno dei due addendi: + e +: deve risultare +, altrimenti overflow! e : deve risultare, altrimenti overflow! Somma compresa tra N (positivo) ed N2 (negativo), quindi sicuramente rappresentabile! Regola equivalente per l overflow Con una rappresentazione su n bit, si ha overflow se i riporti generati nelle due posizioni più significative (n- e n-2 in figura) sono diversi n- n-2 (ovvero: se c è riporto generato in una posizione ma non nell altra) Daniela Fogli Elementi di Informatica e Programmazione 35 Daniela Fogli Elementi di Informatica e Programmazione 36
24 Esempio di overflow Esempio di non overflow Usando n = 6 bit, l intervallo dei numeri rappresentabili va da 2 5 a , ovvero da 32 a +3 Vogliamo calcolare = (-3) = -38 non è compreso nell intervallo = Generato un riporto solo nella posizione più significativa (25 = ) (3 = ) Daniela Fogli Elementi di Informatica e Programmazione = 25 + (-3) = 2 è compreso nell intervallo + 25 = Generato un riporto in entrambe le posizioni più significative (3 = ) Daniela Fogli Elementi di Informatica e Programmazione 38 Esercizio d esame () Rappresentare i numeri 5 e 98 (in base ) in notazione binaria in complemento a due con 8 bit. Eseguire la somma algebrica dei numeri così ottenuti e commentare il risultato. [3 punti] Soluzione Conversione nella notazione binaria dei numeri (valori assoluti) 5 = 2 98 = 2 ( ) ( ) Rappresentazione in complemento a due: -5 = -98 = Daniela Fogli Elementi di Informatica e Programmazione 39 Somma algebrica: + = Soluzione (cont.) Commento (= dire se c è overflow e spiegare perché nel dettaglio): - riporto generato in posizione 6: NO - riporto generato in posizione 7: SI Poiché i riporti generati nei bit di posizione 6 e 7 sono diversi ho un caso di overflow NB: la cosa è evidente anche dal fatto che dalla somma di due numeri negativi ottengo un numero positivo. In effetti con 8 bit posso esprimere in complemento a due i numeri da 28 a +27 [nella pratica da 27 a + 27], mentre si ha 5 98 = 49. ERRORE TIPICO: Dire che c è overflow perché i bit del risultato di posiz. più significativa sono diversi. In questo caso è vero, ma non c entra nulla con l overflow! Daniela Fogli Elementi di Informatica e Programmazione 4
25 Esercizio d esame (2) Soluzione (cont.) Rappresentare i numeri 54 e 44 (in base ) in notazione binaria in complemento a due con 8 bit. Eseguire la somma algebrica dei numeri così ottenuti e commentare il risultato. [3 punti] Soluzione Conversione nella notazione binaria dei numeri (valori assoluti) 54 = 2 44 = 2 ( ) (32+8+4) Rappresentazione in complemento a due dei numeri (con 8 bit) -54 = -44 = Somma algebrica: + = e quindi il risultato è. Commento: Non c è overflow perché i riporti generati nelle posizioni 6 e 7 sono uguali ( e ). In effetti risulta un numero negativo pari a due = ( ) = 98 dieci, che è proprio Daniela Fogli Elementi di Informatica e Programmazione 4 Daniela Fogli Elementi di Informatica e Programmazione 42 Dimenticarsi del numero di bit (8): 54 = 2-54 = 44 = 2-44 = e sommando: + = Un possibile errore risultato che non ha alcun senso!!! (NB: in questo caso l esercizio è valutato punti!) Esercizio d esame (3) Rappresentare i numeri 96 e 69 (in base ) in notazione binaria in complemento a due con 8 bit. Eseguire la somma algebrica dei numeri così ottenuti e commentare il risultato. [3 punti] Soluzione Rappresentazione in complemento a due con 8 bit: 96 = 69 = Somma algebrica: + = Daniela Fogli Elementi di Informatica e Programmazione 43 Daniela Fogli Elementi di Informatica e Programmazione 44
26 Soluzione (cont.) Esercizi Commento: Ho overflow perchè i riporti sono diversi (ho soltanto il riporto nel bit 7), cosa deducibile anche dal fatto che il risultato ha il bit di segno pari a (rappresenta un numero negativo ottenuto dalla somma di due positivi!). ERRORE TIPICO: complementare i due numeri che in realtà sono positivi Dati i seguenti numeri decimali interi positivi: 55, 2, 6, 42 Rappresentarli come numeri binari su 8 bit Determinare i numeri negativi corrispondenti in binario con le seguenti rappresentazioni: Valore assoluto e segno In complemento a In complemento a 2 Daniela Fogli Elementi di Informatica e Programmazione 45 Daniela Fogli Elementi di Informatica e Programmazione 46 Esercizi Fare la somma dei numeri binari in complemento a 2 codificati su n = 8 bit che corrispondono ai numeri 6 dieci e 42 dieci Fare la somma dei numeri binari in complemento a 2 codificati su n = 6 bit che corrispondono ai numeri 5 dieci e 28 dieci Daniela Fogli Elementi di Informatica e Programmazione 47
27 Elementi di Informatica e Programmazione La Codifica dell informazione (parte 3) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Tipologie di codici Nel seguito vedremo tipologie di rappresentazioni diverse: Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2] Disponendo di un numero di bit limitato: numeri naturali interi relativi [valore assoluto e segno, compl. a, compl. a 2] reali [virgola fissa e virgola mobile] valori logici, caratteri alfabetici, testi suoni, immagini e sequenze video codici per la rilevazione e correzione di errori Codici di compressione (senza con perdita) Daniela Fogli Elementi di Informatica e Programmazione 2 Rappresentazione dei numeri reali Formato Per rappresentare numeri come /3 = π = = servirebbe un numero di cifre illimitato Nel calcolatore è possibile usare solo successioni di bit di lunghezza finita Necessaria approssimazione 2 modalità Rappresentazione in virgola fissa (non usata nei calcolatori) Rappresentazione in virgola mobile In entrambi i casi, una rappresentazione è definita mediante un formato Il numero n di bit a disposizione I campi in cui sono suddivisi i bit Quanti In che ordine Quanti bit per ciascun campo Cosa rappresenta ciascun campo Esempio di formato a 32 bit S E M Vedremo poi il significato 8 23 Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4
28 Rappresentazione in virgola fissa Altro esempio Abbiamo n bit a disposizione (e vogliamo rappresentare numeri reali): - un campo del formato rappresenta la parte intera - un campo del formato rappresenta la parte frazionaria Esempio: n = 24 bit (3 byte) Parte intera Parte decimale 2 byte (6 bit) byte (8 bit) Il numero più piccolo rappresentabile maggiore di è: (2-8 ) Esempio: n = 32 bit 3 Parte intera 6 bit 6 5 Parte frazionaria 6 bit Es dieci sarebbe rappresentato così Valore massimo rappresentabile in questo formato?. 6 bit 6 bit Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6 Intervallo di rappresentazione: esempio Intervallo di rappresentazione: in generale Nel formato precedente a 32 bit - Parte intera: 2 6 = Parte frazionaria:. +. = = circa N MAX = circa Numero massimo rappresentabile N MAX ni bit Max parte intera: 2 ni - Max parte frazionaria: - 2 -nf nf bit se nf grande, - 2 -nf pari a circa N MAX = (2 ni -) + ( - 2 -nf ) se nf grande, N MAX pari a circa 2 ni Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8
29 Granularità Un inconveniente Qual è la precisione della rappresentazione in virgola fissa? Granularità: differenza tra un numero e il successivo rappresentabile quanto più è piccola, tanto più precisa è la rappresentazione! Dato un numero, rappresentato, qual è il successivo? Es.. In generale: la granularità è fissa e pari a 2 -nf Per un qualsiasi numero rappresentabile I, il successivo è I + 2 -nf Con la rappresentazione precedente, vogliamo rappresentare un numero grande, ad esempio 6. Molto meglio un campo più grande per la parte intera! Vogliamo rappresentare un numero piccolo, ad esempio 2-5 a cosa mi servono questi? a cosa mi servono questi? Molto meglio un campo più grande per la parte frazionaria! Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione Alcuni esempi pratici Notazione scientifica Massa dell elettrone: 9 x -28 grammi.9 Massa del sole: 2 x 33 grammi 2. Potrei rappresentare tutti i numeri con 34 cifre a sinistra della virgola e 28 cifre a destra, ma in questo modo spreco le cifre disponibili! Si vuole un sistema di rappresentazione in cui l intervallo dei numeri esprimibili sia indipendente dal numero di cifre significative Ovvero un sistema in cui la granularità dipende dal numero rappresentato: si estende così l intervallo dei numeri rappresentabili Per semplicità, vediamola prima in base Un numero in base viene rappresentato come m x exp base mantissa esponente Esempio: 59 3 = x 8 dove m=+.593 ed e=8 Esempio: = x -5 dove m= ed e=-5 Daniela Fogli Elementi di Informatica e Programmazione Daniela Fogli Elementi di Informatica e Programmazione 2
30 Notazione scientifica per numeri binari Il numero due può essere rappresentato come. x 2 8 esponente mantissa base Altri esempi: un numero molto grande come. diventa *2 29 un numero molto piccolo come. diventa.*2-36 Nel calcolatore: Rappresentazione in virgola mobile Virgola mobile o Floating point Dato un numero da rappresentare N: N = ±mant*2 esp FORMATO Esempio di formato: Si memorizzano segno, mantissa ed esponente s M mant esp n M bit n E bit Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4 Problema Standard IEEE 754 N = ±mant*2 esp In questo modo la rappresentazione non è univoca:. due = * 2 - mant = esp = - = * 2-2 mant = esp = -2 =. * 2 mant =. esp = si stabilisce la forma normalizzata della mantissa Necessità di uniformare la precisione del calcolo (calcolatori di produttori diversi con strutture differenti) Lo standard IEEE * 754 stabilisce la lunghezza di mantissa ed esponente 32 bit per i numeri in precisione singola bit per i numeri in precisione doppia 52 bit segno, 8 bit esponente, 23 bit mantissa bit segno, bit esponente, 52 bit mantissa * Institute of Electrical and Electronic Engineering Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6
31 IEEE 754 Singola Precisione Nota sulla rappresentazione dell esponente S E M 8 23 Segno S: segno + segno - Esempio: num= -3.5 Segno: 255 Numeri positivi Normalizzazione e mantissa N =.xxxxxxxxx 23 bit (M) * 2 esp hidden bit Rappresentazione dell esponente E = esp + 27 Rappresentazione in 8 bit a eccesso 27, con le configurazioni e non ammesse (-26 esp 27) num =. =. * 2 M = E = +27 = 28 = Numeri negativi Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8 Esercizio d esame () Esercizio d esame (2) Se il campo esponente di una codifica contiene il numero qual è il valore decimale dell esponente? [2 punti] Soluzione E = esp + 27 valori rappresentabili da 27 a +28 (NB: gli estremi non sono utilizzati propriamente) Nel caso specifico: E = 59 quindi esp = = -68 Ricavare il valore decimale del seguente numero in virgola mobile rappresentato secondo lo standard IEEE 754 a 32 bit: [3 punti] Soluzione Segno: + Esponente: E = 2 7 = 28 esp = = Mantissa: mant =. N =. due * 2 = due = 3 dieci Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione 2
32 Esercizio d esame (3) Normalizzazione Rappresentare il numero decimale 4.5 secondo lo standard in virgola mobile IEEE 754 a 32 bit. [3 punti] Soluzione Segno: Rapp. binaria: 4.5 dieci =. due Forma normalizzata: N =. * 2 2 Esponente: esp = 2 E = 2+27 = 29 dieci = IEEE754: PASSAGGIO IMPORTANTE: normalizzazione ESEMPIO Rappresentazione binaria:. =. * 2 3 (forma normalizzata) ESEMPIO 2 Rappresentazione binaria:. =. * 2-3 (forma normalizzata) Daniela Fogli Elementi di Informatica e Programmazione 2 Daniela Fogli Elementi di Informatica e Programmazione 22 L insieme dei numeri in virgola mobile non coincide con R Esempio: IEEE 754 con singola precisione L insieme dei numeri reali è denso e illimitato MinExp = -26 MaxExp = +27 [estremi per scopi speciali] L insieme dei numeri in virgola mobile non è denso ed è limitato tra un numero reale massimo ed uno minimo esprimibili L aritmetica reale del calcolatore è diversa da quella classica Numero più grande normalizzato: ±. 2 * *2 27 = 2 28 Numero più piccolo normalizzato: ±. 2 * 2-26 = 2-26 OVERFLOW - NORMALIZZATI - DENORM.- UNDERF. DENORM.+ NORMALIZZATI + OVERFLOW NB: nel caso della virgola fissa, l intervallo dei valori rappresentabili sarebbe molto più limitato. Es: - anche se dedicassimo tutti i 32 bit alla parte intera, max anche se dedicassimo tutti i 32 bit alla parte fraz, min 2-32 Daniela Fogli Elementi di Informatica e Programmazione 23 Daniela Fogli Elementi di Informatica e Programmazione 24
33 E lo zero??? I problemi che nascono dalla natura digitale del calcolatore In generale lo zero non si potrebbe rappresentare perché la mantissa è sempre.m Si usa un valore speciale dell esponente (E = ) e si pone la mantissa a. questa rappresentazione significa Altri casi particolari di E (E= oppure E=255) per rappresentare ±, risultati di operazioni non valide, numeri denormalizzati I numeri nelle regioni (-, ), (-2-26, ), (, 2-26 ), (2 28, + ) non possono essere rappresentati Determiniamo quanti numeri possono essere rappresentati la mantissa varia da m =... a... (2 23 numeri) l esponente varia da e = -26 a + 27 (254 ordini di grandezza) in totale: 2 23 x 254 numeri positivi, 2 23 x 254 numeri negativi, e lo zero numeri I due intervalli di numeri positivi e negativi esprimibili non formano insiemi continui: i numeri non sono cioè uniformemente distribuiti (più radi per valori elevati dell esponente e più fitti per valori piccoli dell esponente si infittiscono nei pressi dello zero) Daniela Fogli Elementi di Informatica e Programmazione 25 Daniela Fogli Elementi di Informatica e Programmazione 26 Esempio Operazioni sui numeri reali La separazione fra... x 2 99 e... x 2 99 (ovvero, = 2 76 ) è molto maggiore di quella fra... x 2 e... x 2 (ovvero, 2-23 ) OVERFLOW - NORMALIZZATI - NORMALIZZATI + OVERFLOW x 2 99 Addizione e sottrazione: si trasformano (con eventuale perdita di precisione) gli addendi in una rappresentazione con uguale esponente (il maggiore) si sommano (sottraggono) le mantisse si normalizza se necessario Moltiplicazione: si sommano gli esponenti si moltiplicano le mantisse si normalizza se necessario Divisione: si sottraggono gli esponenti si dividono le mantisse si normalizza se necessario La precisione è concentrata dove ce n è bisogno! Daniela Fogli Elementi di Informatica e Programmazione 27 Daniela Fogli Elementi di Informatica e Programmazione 28
34 Esempio di addizione Problemi con le operazioni Somma tra i seguenti due numeri rappresentati IEEE 754: e E = 23 ( 27 = -4) E = 25 ( 27 = -2) Porto l esponente del primo operando a -2: Nota: perdo le 2. x 2-4 =. x 2-2 cifre meno significative della Sommo le mantisse: mantissa. +. =. [ x 2-2 ] [ x 2-2 ] [ x 2-2 ] NB: risultato già normalizzato! Addizioni e sottrazioni possono dare luogo a errori Esempio: sottrazione fra due numeri quasi uguali può dar luogo al fenomeno della cancellazione (risultato = ) Divisione per numeri molto piccoli il risultato può cadere nell intervallo di overflow (+ o -) Risulta quindi NB: le cose sono leggermente più complicate, ma l idea è questa Daniela Fogli Elementi di Informatica e Programmazione 29 Daniela Fogli Elementi di Informatica e Programmazione 3 Fenomeno della cancellazione: esempio Esercizi Se ho la sottrazione. x x 2-26 =. x 2-26 che normalizzato diventerebbe. x 2-29 che viene dunque approssimato con, perché il minimo esponente esprimibile è -26 Esprimere i numeri decimali 45.25, , 67.75, in codifica binaria secondo lo standard IEEE 754 (in singola precisione a 32 bit) Ricavare il valore decimale dei seguenti numeri in virgola mobile rappresentati secondo lo standard IEEE 754 a 32 bit: NB: in realtà, è possibile esprimere numeri denormalizzati prossimi allo, fino a 2-49, ma noi non ce ne occupiamo (vedere libro per gli interessati) Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 32
35 Tipologie di codici Codifica binaria di valori logici Nel seguito vedremo tipologie di rappresentazioni diverse: Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2] Disponendo di un numero di bit limitato: numeri naturali interi relativi [valore assoluto e segno, compl. a, compl. a 2] reali [virgola fissa e virgola mobile] valori logici, caratteri alfabetici, testi suoni, immagini e sequenze video codici per la rilevazione e correzione di errori Codici di compressione (senza con perdita) Valore logico: esprime il valore di verità di un determinato fatto Esempi - Il voto del mio compito di informatica A è sufficiente (F) - Una squadra di pallavolo in campo è costituita da 6 giocatori (F2) Il fatto F è vero oppure falso, non entrambi (lo stesso per F2) Daniela Fogli Elementi di Informatica e Programmazione 33 Daniela Fogli Elementi di Informatica e Programmazione 34 Algebra di Boole Variabili booleane E un particolare tipo di algebra che include: un insieme di supporto A (l insieme {,} o {V,F} nel ns caso) degli operatori binari: AND () e OR (+) un operatore complemento: NOT ( ) Gli operatori soddisfano certe proprietà che si deducono da un insieme di assiomi Una variabile booleana è una variabile binaria che può assumere uno dei due valori logici denotati con e (oppure Falso e Vero) Usiamo ad esempio i simboli x, y, z, per indicare variabili booleane Può essere x = oppure x = E lo strumento matematico su cui si fonda il funzionamento dei circuiti digitali Daniela Fogli Elementi di Informatica e Programmazione 35 Daniela Fogli Elementi di Informatica e Programmazione 36
36 Operatori booleani e Tabelle di Verità Assiomi dell Algebra di Boole Operatori booleani (o logici) fondamentali: NOT Negazione Logica not(x), x, ~x AND Prodotto Logico x and y, x y, xy OR Somma Logica x or y, x + y Forma AND Forma OR Commutatività AB = BA A+B = B+A x x x x x x x + x x x NOT Distributività A+BC=(A+B)(A+C) A(B+C)=AB+AC Identità A = A +A = A Inverso AĀ = A+Ā = AND OR Daniela Fogli Elementi di Informatica e Programmazione 37 Daniela Fogli Elementi di Informatica e Programmazione 38 Proprietà dell Algebra di Boole Forma AND Forma OR Elemento nullo A = +A = Idempotenza AA = A A+A = A Assorbimento A(A+B) = A A+AB=A Associatività (AB)C=A(BC) (A+B)+C=A+(B+C) De Morgan AB = A+B A+B = A B Altre proprietà della negazione logica: Formule (espressioni) booleane (logiche). Le costanti e e le variabili (simboli a cui possono essere associati i valori e ) sono formule booleane 2. Se E, E ed E 2 sono formule booleane lo sono anche (E +E 2 ), (E E 2 ) e (E) 3. Non esistono altre formule oltre a quelle che possono essere generate da un numero finito di applicazioni delle regole e 2 = = Daniela Fogli Elementi di Informatica e Programmazione 39 Daniela Fogli Elementi di Informatica e Programmazione 4
37 Esempi di formule booleane Equivalenza fra formule booleane Esempi ((x+y)z) ((x x 2 )+(x 3 (x 4 +x 5 ))) Valgono le regole classiche di semplificazione delle parentesi e di priorità degli operatori: ((x x 2 )+(x 3 (x 4 +x 5 ))) x x 2 +x 3 (x 4 +x 5 ) e il simbolo di solito si omette x x 2 + x x 2 x 3 = x (x 2 +x 2 x 3 ) x + x 2 + x 2 x 3 + x 2 x 3 = x + x 2 + x 3 (x 2 +x 2 ) = x + x 2 + x 3 x x 2 + x x 2 x 3 + x x 2 = x x 2 + x x 2 x 3 = x x 2 ( +x 3 ) = x x 2 Equivalenza di formule booleane: per ogni combinazione di valori delle variabili le formule restituiscono lo stesso valore Daniela Fogli Elementi di Informatica e Programmazione 4 Daniela Fogli Elementi di Informatica e Programmazione 42 Equivalenza fra formule booleane Verifica tramite tabella Tabelle di verità e proprietà dell Algebra di Boole: Esempio x + x 2 + x 2 x 3 + x 2 x 3 = x + x 2 + x 3 Assorbimento: x(x+y) = x x 3 x 2 x x 2 x 2 x 3 x 2 x 3 x +x 2 +x 2 x 3 +x 2 x 3 x +x 2 +x 3 x y x+y x(x+y) Daniela Fogli Elementi di Informatica e Programmazione 43 Daniela Fogli Elementi di Informatica e Programmazione 44
38 Tabelle di verità e proprietà dell Algebra di Boole: Esempio (2) NB: si può usare anche una diversa simbologia per i valori Tabelle di verità e proprietà dell Algebra di Boole: Esempio (3) o per gli operatori Assorbimento: x(x +y) = x x y x+y x(x+y) F F F F F V V F V F V V V V V V Assorbimento: x AND (x OR y) = x x y x OR y x AND (x OR y) F F F F F V V F V F V V V V V V Daniela Fogli Elementi di Informatica e Programmazione 45 Daniela Fogli Elementi di Informatica e Programmazione 46 Tabelle di verità e proprietà dell Algebra di Boole: Esempio Esercizi Proprietà di De Morgan: x y = x + y x y xy xy x y x + y Costruire le tabelle di verità delle seguenti formule booleane:. (x + y) + (xy) che è equivalente a scrivere (x OR y) OR NOT(x AND y) 2. ((x + z) + y) + (xz) che è equivalente a scrivere NOT ((x OR z) OR y) OR (x AND z) Usando gli assiomi e le proprietà dell algebra di Boole dimostrare le seguenti equivalenze di formule booleane:. xyz + xyz + xyz + x = x 2. x y + x y + x y = x + y Daniela Fogli Elementi di Informatica e Programmazione 47 Daniela Fogli Elementi di Informatica e Programmazione 48
39 Tipologie di codici Codifica binaria dei caratteri Nel seguito vedremo tipologie di rappresentazioni diverse: Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2] Disponendo di un numero di bit limitato: numeri naturali interi relativi [valore assoluto e segno, compl. a, compl. a 2] reali [virgola fissa e virgola mobile] valori logici, caratteri alfabetici, testi suoni, immagini e sequenze video codici per la rilevazione e correzione di errori Codici di compressione (senza con perdita) Quanti oggetti? cifre 26 lettere minuscole + 26 lettere maiuscole = 52 ~3 segni di interpunzione ~3 caratteri di controllo (LF, CR, EOF, ) ~2 oggetti k = log 2 2 = 7 (sufficienti 7 bit) Il codice ASCII utilizza 7 bit e quindi può rappresentare al massimo n = 2 7 = 28 caratteri Codice ASCII esteso: utilizza 8 bit e quindi codifica 256 caratteri Codice UNICODE: utilizza 6 bit e quindi codifica caratteri (anche quelli delle lingue orientali non tutti! Sono circa 2! e aumentano!) Estensione a 2 bit del codice UNICODE Daniela Fogli Elementi di Informatica e Programmazione 49 Daniela Fogli Elementi di Informatica e Programmazione 5 ASCII Table Dec Hx Oct Char Dec Hx Oct Char Dec Hx Oct Char Dec Hx Oct Char NUL (null) SPACE ` SOH (start of heading) ! 65 4 A a STX (start of text) " B b ETX (end of text) # C c EOT (end of transmission) $ D d ENQ (enquiry) % E e ACK (acknowledge) & F f BEL (bell) ' G g 8 8 BS (backspace) ( H h 9 9 TAB (horizontal tab) ) I i A 2 LF (NL line feed, new line) 42 2A 52 * 74 4A 2 J 6 6A 52 j B 3 VT (vertical tab) 43 2B B 3 K 7 6B 53 k 2 C 4 FF (NP form feed, new page) 44 2C 54, 76 4C 4 L 8 6C 54 l 3 D 5 CR (carriage return) 45 2D D 5 M 9 6D 55 m 4 E 6 SO (shift out) 46 2E E 6 N 6E 56 n 5 F 7 SI (shift in) 47 2F 57 / 79 4F 7 O 6F 57 o 6 2 DLE (data link escape) P p 7 2 DC (device control ) Q q DC2 (device control 2) R r DC3 (device control 3) S s DC4 (device control 4) T t NAK (negative acknowledge) U u SYN (synchronous idle) V v ETB (end of trans. block) W w CAN (cancel) X x EM (end of medium) Y y 26 A 32 SUB (substitute) 58 3A 72 : 9 5A 32 Z 22 7A 72 z 27 B 33 ESC (escape) 59 3B 73 ; 9 5B 33 [ 23 7B 73 { 28 C 34 FS (file separator) 6 3C 74 < 92 5C 34 \ 24 7C D 35 GS (group separator) 6 3D 75 = 93 5D 35 ] 25 7D 75 } 3 E 36 RS (record separator) 62 3E 76 > 94 5E 36 ^ 26 7E 76 ~ 3 F 37 US (unit separator) 63 3F 77? 95 5F 37 _ 27 7F 77 DEL Daniela Fogli Elementi di Informatica e Programmazione 5 Codifica binaria di testi In generale interessa rappresentare non solo i caratteri che compongono un testo ma anche altre caratteristiche di formattazione quali: lo stile di scrittura (grassetto, corsivo, sottolineato, ) la dimensione del carattere il tipo o font (times new roman, arial, courier, ) l ampiezza dei margini della pagina Esistono diversi codici, detti formati che consentono di rappresentare un insieme più o meno ampio di caratteristiche: testo semplice (text o txt): corrisponde a una sequenza di caratteri ASCII senza caratteristiche di formattazione testo arricchito (rich text format o rtf): in grado di rappresentare un ristretto insieme di formattazioni (stile, dimensione, colori) testo Word (document o doc): in grado di rappresentare un insieme ampio di formattazioni Daniela Fogli Elementi di Informatica e Programmazione 52
40 Formati dei documenti per stampa e visualizzazione Formati standardizzati che sono orientati alla produzione di documenti destinati a stampa e visualizzazione: Documenti in formato PDF (Portable Document Format, formato di documento portabile) Documenti in formato PS (Postcript) - l applicazione GSview (Ghostview) legge il formato postcript Non limitati alla rappresentazione di testo ma possono includere anche immagini e disegni Daniela Fogli Elementi di Informatica e Programmazione 53
41 Elementi di Informatica e Programmazione La Codifica dell informazione (parte 4) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Tipologie di codici Nel seguito vedremo tipologie di rappresentazioni diverse: Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2] Disponendo di un numero di bit limitato: numeri naturali interi relativi [valore assoluto e segno, compl. a, compl. a 2] reali [virgola fissa e virgola mobile] valori logici, caratteri alfabetici, testi suoni, immagini e sequenze video codici per la rilevazione e correzione di errori Codici di compressione (senza con perdita) Daniela Fogli Elementi di Informatica e Programmazione 2 Rappresentazione di informazioni multimediali La digitalizzazione Con appositi metodi e codifiche si possono rappresentare informazioni complesse con sequenze di bit: Immagini Filmati Suoni I problemi collegati alla gestione della rappresentazione, memorizzazione e elaborazione di queste informazioni sono: la richiesta di elevate capacità di elaborazione (es: calcoli necessari per riprodurre un video codificato in divx) occupazione elevata di memoria: per questo si utilizzano tecniche di compressione dei dati che consentono di ridurre la richiesta di memoria Voce Suoni Immagini Filmati Informazione continua rappresentazione anche approssimata tramite sequenze di bit Nel calcolatore Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4
42 In cosa consiste la digitalizzazione? Codifica di un suono Problema: codificare tramite una sequenza di bit una grandezza fisica (es. volume di un suono) i cui valori si assumono variabili in un intervallo continuo Soluzione: processo di digitalizzazione (o conversione analogica-digitale) Comprende 2 attività: Quantizzazione: discretizzazione dei valori attraverso approssimazione con uno dei valori compresi fra quelli previsti nella codifica Campionamento: se la grandezza inoltre varia anche nel tempo (es. un suono) o nello spazio (es. colore di un immagine) occorre selezionare un insieme finito di valori, ad intervalli (nel tempo o nello spazio) costanti in una sequenza di bit attraverso campionamento (nel tempo) e quantizzazione (in ampiezza) Frequenza di campionamento: numero di campioni acquisiti nell unità di tempo (es. numero di campioni al secondo, misurato in Hertz) - Es. frequenza di 5 Hz significa acquisizione di 5 campioni al secondo Il numero di bit necessari per codificare ogni valore è il parametro che qualifica la quantizzazione - Es. con 8 bit posso codificare 256 valori diversi Per ciascun intervallo di tempo viene scelto l istante di campionamento t i in cui viene rilevato il valore della grandezza La quantizzazione è su 4 livelli, quindi il risultato del campionamento è A 2 A 2 A A A 3 A 3 A La successione (codifica digitale) potrebbe essere Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6 Rappresentazione dei suoni nei CD audio Dal mondo reale al calcolatore (e viceversa) Segnali audio: onde analogiche campionamento + quantizzazione valori digitali Frequenza di campionamento: f c = 44. khz (44. campioni) per i 2 canali Quantizzazione: 6 (2 byte) bit/campione = valori diversi per campione (numero di livelli di quantizzazione) Dal mondo reale al calcolatore DIGITALIZZAZIONE (campionam. & quantizz.) NB: HW per acquisizione sonora (es. microfono) Dal calcolatore al mondo reale memorizzazione, eventuali elaborazioni Il numero di bit memorizzati è dunque: N bit = F(durata, f c, bit/campione) Nello standard CDDA (CD Digital Audio) 7 minuti registrazione richiedono 7 x 6 x 44. x 2 x 2 byte 75 MByte Nel calcolatore CONVERSIONE DIGITALE-ANALOGICA NB: scheda audio riceve i valori digitali e ricostruisce il segnale analogico + diffusori Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8
43 Alcuni formati audio Codifica delle immagini WAVE:.wav, occupano molto spazio (corrisponde a quanto visto nei lucidi precedenti: ~MB per minuto) MP3 (MPEG- Layer 3): grande diffusione su Internet. Utilizza tecniche di compressione per ridurre le dimensioni (vedi poi). MPEG nasce da un gruppo di lavoro di standardizzazione MIDI (Musical Instrument Digital Interface):.mid, i file memorizzano non suoni ma comandi (es. le note musicali di un particolare strumento) che vengono inviati ai dispositivi MIDI per riprodurre i suoni, occupano molto meno spazio dei.wav. Es: tastiera musicale + calcolatore permettono di suonare un brano su tastiera che viene automaticamente trascritto in notazione musicale in un file midi che può poi essere anche modificato Campionamento: Nel caso delle immagini è una discretizzazione nello spazio: si divide l immagine in quadrati, per ognuno dei quali si dovrà prelevare un campione che si considera rappresentativo di tutto il quadrato Questi quadrati sono trattati come elementi di base dell immagine digitale: sono chiamati pixel Quanti più pixel vengono considerati per unità di superficie tanto più precisa sarà la riproduzione dell immagine (risoluzione) Quantizzazione: codifica del colore associato a ogni pixel Immagini in bianco e nero: bit per pixel (b/n) Immagine a scala di grigi: es. un byte per pixel (256 livelli di grigio) Immagine a colori: es. con modello RGB (colore ottenuto per sovrapposizione di Rosso Verde e Blu) 3 byte per pixel, uno per ogni colore primario Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione Campionamento e quantizzazione: esempio Campionamento Maggie Cheung dal film Hero di Zhang Yimou (22) Daniela Fogli Elementi di Informatica e Programmazione Daniela Fogli Elementi di Informatica e Programmazione 2
44 Quantizzazione Codifica bitmap (raster) di immagini Immagine bitmap (o raster): matrice di pixel Per ogni pixel un certo numero di byte es. 3 byte (colori) o byte (b/n) Daniela Fogli Elementi di Informatica e Programmazione 3 L immagine è rappresentata direttamente come matrice di pixel Risoluzione: num. di pixel orizzontali X num. di pixel verticali Ad ogni pixel è riservato un certo numero di bit: bit (per pixel) 2 informazioni diverse (b/n) 4 bit (per pixel) 6 colori o livelli di grigio 8 bit (per pixel) 256 colori o livelli di grigio 6 bit (per pixel) 64K colori (2 6 = 2 x 2 6 ) 24 bit (per pixel) 6M = 2 24 colori (più di 6 milioni di colori) Daniela Fogli Elementi di Informatica e Programmazione 4 Immagini bitmap RGB Problemi con immagini bitmap L informazione sul colore di ogni pixel occupa 3 byte, uno per ogni colore primario (rosso, verde, blu) La quantità di colore primario è data da un valore tra e 255 (o equivalentemente è rappresentato da una sequenza di bit a partire da fino a ) Ogni ingrandimento fa perdere qualità (l immagine si sgrana ) vedi prossimo lucido per evitare questo problema si può usare la codifica vettoriale R=255, G=255, B=255 R=25, G=72, B=78 R=9, G=85, B=2 R=, G=, B= Occupano molta memoria. Possibili soluzioni: uso di tavolozze (palette) formati compressi codifica vettoriale Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6
45 Immagini bitmap: esempio Un immagine RGB occupa: 3 byte x risoluzione verticale x risoluzione orizzontale Esempio: un immagine RGB con risoluzione 24x768 pixel necessita di più di 2 MB Uso di tavolozze (palette) Spesso un immagine utilizza un numero limitato di colori (scelti comunque tra l insieme ampio di tutti i colori rappresentabili) Esempio banale: immagine RGB che usa due soli colori (qualsiasi) Dimensioni senza palette: numero pixel * 3 byte Idea: il formato memorizza i colori usati in un area specifica (palette) e per ogni pixel si indica quale dei due colori usato e se la ingrandisco si sgrana Insieme dei 6 M colori Tavolozza (2*3 byte) Matrice ( bit per pixel) IMMAGINE CODIFICATA Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8 Esercizio Esercizio Un immagine di risoluzione 24*768 utilizza 256 colori RGB. Quali dimensioni occupa la sua codifica se si utilizza una palette? E se non la si utilizza? Un immagine di risoluzione 24*768 utilizza 256 colori RGB. Quali dimensioni occupa la sua codifica se si utilizza una palette? E se non la si utilizza? Senza utilizzare palette: 24 * 768 * 3 byte = 2 * 3 * 2 8 * 3 byte = byte Con utilizzo di palette: * 3 byte = 768 byte (per codificare la tavolozza) - a cui si sommano 24 * 768 * byte (per la matrice) TOTALE = = byte Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione 2
46 I formati di file bitmap Codifica vettoriale di immagini BMP: formato standard non compresso per MS Windows, 24 bit per pixel,.bmp. Gestisce palette a 2, 6, 256 colori + true color TIFF (Tagged Image File Format): alta qualità (32 bit per pixel), 6 milioni di colori (24 bit) + ulteriori proprietà, dimensioni file molto grandi,.tif, adottato da scanner e macchine fotografiche FORMATI COMPRESSI: GIF (Graphic Interchange Format): formato compresso, 8 bit per pixel (256 colori),.gif JPEG (Joint Picture Experts Group): 6 milioni di colori, formato compresso (più del gif),.jpg JPEG 2: formato ancor più compresso,.j2k o.jp2 Le immagini sono rappresentate tramite un insieme di elementi grafici (linee, rettangoli, ellissi, archi e curve) Memorizzazione come coordinate numeriche o formule matematiche che specificano forma e posizione: occupa poca memoria (es. un cerchio solo centro e raggio, una retta le coordinate degli estremi) Necessaria un operazione di rendering (rasterizzazione) che, a partire dalla descrizione matematica, produca l immagine raster Programmi di tipo draw (programmi di grafica vettoriale): es. Corel Draw, programmi di CAD, programmi di grafica tridimensionale Vantaggi: Controllo accurato di linee e colori Ingrandimento, riduzione, rotazione senza perdita Possibilità inserimento testo attorno agli oggetti Alcuni formati: DXF, DWG, CDR, AI, WMF Daniela Fogli Elementi di Informatica e Programmazione 2 Daniela Fogli Elementi di Informatica e Programmazione 22 Immagini vettoriali: esempio Codifica di sequenze video In teoria, una sequenza video è semplicemente una sequenza di fotogrammi (immagini): campionamento nel tempo (successione di fotogrammi) ciascun fotogramma rappresentato normalmente (campionamento nello spazio e quantizzazione) In pratica, le dimensioni risulterebbero troppo elevate. Facendo un conto a spanne, se un immagine occupa MB con 25 fotogrammi al secondo: 25 MB al secondo 25 x 6 MB al minuto = circa,5 GB al minuto! Tecniche di compressione specifiche per le sequenze video Daniela Fogli Elementi di Informatica e Programmazione 23 Daniela Fogli Elementi di Informatica e Programmazione 24
47 Mondo analogico e mondo digitale Rappresentazione analogica e digitale Come è rappresentato un brano musicale su un vecchio disco di vinile? rappresentazione analogica (la forma del solco descrive per analogia il suono da produrre) Come è rappresentato un brano musicale su un CD? rappresentazione digitale (il supporto dà una informazione cha va decodificata) Rappresentazione analogica: le configurazioni assunte dal supporto possono variare in modo continuo e riflettono secondo una analogia diretta la struttura dell informazione Limite: applicabile solo se esiste un supporto in grado di ricreare tra le sue configurazioni una struttura corrispondente a quella presente sull insieme degli elementi di informazione Rappresentazione digitale: l insieme delle configurazioni è finito (e fissato a priori) e la struttura dell informazione si può dedurre dalle configurazioni solo attraverso una specifica regola di codifica. Limite: si può rappresentare un insieme di elementi di informazione finito e predefinito (se emerge l esigenza di codificare un nuovo elemento, necessario rivedere o estendere la codifica) Daniela Fogli Elementi di Informatica e Programmazione 25 Daniela Fogli Elementi di Informatica e Programmazione 26 Esempio Perché la rappresentazione digitale? E perché proprio quella binaria? (a) Corrispondenza fra l orario e la posizione dell ago sulla scala (b) Configurazioni convenzionali: combinazioni di segmenti illuminati Una qualunque grandezza fisica può essere convertita in forma digitale (conversione analogico-digitale o digitalizzazione) La conversione conduce a perdita di informazione (il segnale originario non può essere ricostruito in modo esatto a partire dal segnale digitale). Tuttavia: Campionamento: è (almeno in linea teorica) reversibile (no perdita di informazione) se la frequenza di campionamento è sufficientemente alta Quantizzazione: perdita di informazione arbitrariamente piccola all aumentare del numero di livelli di quantizzazione Inoltre i valori dei segnali analogici in realtà non sono tutti distinguibili (rumore, imprecisione strumento di misura, ecc.) Daniela Fogli Elementi di Informatica e Programmazione 27 Daniela Fogli Elementi di Informatica e Programmazione 28
48 Immunità al rumore (affidabilità) Altre ragioni del predominio del digitale (a) Volt (b) Volt +5 V 3.5 V In realtà:.5 V V Valore Valore Con (a) sono tollerati disturbi fino a.5 V, con (b) fino a.25 V L immunità al rumore risulta essere una delle ragioni fondamentali che hanno determinato il predominio della rappresentazione digitale su quella analogica In particolare la codifica binaria è quella migliore Molte informazioni sono di natura prettamente simbolica Uniformità nella rappresentazione: una varietà ristretta di dispositivi può realizzare svariate funzioni Tecniche di codifica e trasmissione uniformi su tipologie di informazioni diverse Elaborazione simbolica (numerica) delle informazioni digitali (mediante operazioni matematiche) in tempi brevi Elaborazione digitale per modificare le caratteristiche di un segnale analogico (es. restauro di incisioni audio o di pellicole cinematografiche) Daniela Fogli Elementi di Informatica e Programmazione 29 Daniela Fogli Elementi di Informatica e Programmazione 3
49 Elementi di Informatica e Programmazione La Codifica dell informazione (parte 5) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Tipologie di codici Nel seguito vedremo tipologie di rappresentazioni diverse: Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2] Disponendo di un numero di bit limitato: numeri naturali interi relativi [valore assoluto e segno, compl. a, compl. a 2] reali [virgola fissa e virgola mobile] valori logici, caratteri alfabetici, testi suoni, immagini e sequenze video codici per la rivelazione e correzione di errori Codici di compressione (senza con perdita) Daniela Fogli Elementi di Informatica e Programmazione 2 Un esempio: memorizzazione di informazioni Un esempio: memorizzazione di informazioni... Informazioni da memorizzare (ad esempio: in un CD)... Informazioni da memorizzare (ad esempio: in un CD)??? Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4
50 Un esempio: trasmissione di informazioni Errore......??? Errore: modifica di un bit ( diventa oppure diventa ) Posso avere uno o più errori LA SOLUZIONE Su una sequenza di bit, usare dei codici particolari che permettono: Di rivelare la presenza di errori: CODICI RIVELATORI Di correggere gli errori, ricostruendo la sequenza originaria: CODICI CORRETTORI Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6 Come? Codice ridondante dominio O8 O7 O O2 O6 O4 O5 O3 codominio insieme delle codifiche L insieme delle codifiche è un sottoinsieme proprio del codominio l insieme delle non codifiche è non nullo O O 2 insieme delle codifiche Esempio: codice ridondante a due bit 8 oggetti, 3 bit: il codice è non ridondante Non è possibile rivelare né correggere errori Per rivelare o correggere errori dobbiamo introdurre della ridondanza dominio Per esempio: insieme delle non-codifiche codominio se codifico O e ho un errore (ad esempio sul primo bit) ottengo rivelazione dell errore Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8
51 Quanto? Rivelazione: l idea Voglio un codice che, per qualunque codifica sia in grado di rilevare/correggere k errori comunque siano distribuiti d = 5 Esempio: un semplice codice per due entità, 5 bit Atalanta Brescia Distanza tra le codifiche: d = 5 Si può dimostrare che si possono rivelare fino a k = 4 errori (d k+) Si può dimostrare che si possono correggere fino a k = 2 errori (d 2k+) Fino a 4 errori Data una codifica (es. ) un alterazione di un numero di bit minore o uguale a k = 4 non può generare l altra codifica () poiché la distanza è 5 (k + ) Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione Correzione: l idea In generale d = 5 2k+ k k k+ Distanza fra due sequenze di bit: numero di bit di pari posto che hanno diverso valore nelle due sequenze (es. la distanza fra e è 4) Distanza di un codice: minimo valore delle distanze tra ogni coppia di elementi appartenenti all insieme delle codifiche Data una codifica (es. ) un alterazione di un numero di bit minore o uguale a k = 2 può generare una non-codifica che può essere corretta associando ad essa la codifica avente distanza minima Es. sia la codifica di partenza e una non-codifica con k = 2 errori, la codifica associata con distanza minima è proprio, invece avendo la non-codifica (codifica con 3 errori) non posso risalire alla codifica perché correggendo troverei Daniela Fogli Elementi di Informatica e Programmazione Rivelazione e correzione di errori Per rivelare k errori, un codice deve avere distanza d con d k+ Per correggere k errori, un codice deve avere distanza d con d 2k+ Daniela Fogli Elementi di Informatica e Programmazione 2
52 Codice di parità Esercizio Esempio di codice rilevatore: il codice di parità Dato un codice: si aggiunge un bit in modo che il numero di sia pari (parità pari) [o dispari (parità dispari)] Esempio Codice ASCII a 7 bit Bit di parità (codice a parità pari) Per codificare i tre simboli D, F, I si utilizza il seguente codice a 5 bit: D F I Errori di trasmissione possono dar luogo alla modifica di uno o più bit. a) Quanti errori è in grado di rivelare il codice in generale? b) E quanti errori è in grado di correggere? d = 2 (a partire da una codifica con un numero pari di è necessario modificare almeno 2 bit per ottenere una sequenza che a sua volta abbia un numero pari di, ovvero che sia una codifica) può rivelare un errore, correggerne nessuno Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4 Soluzione Esercizio d 2 = 3 d 23 = 4 d 3 = 3 la distanza del codice è pari a 3 a) Errori rilevati: d k+ quindi k max = 2 (possono essere rivelati 2 errori) b) Errori corretti: d 2k+ quindi k max = (3-)/2= (può essere corretto errore) Si consideri il codice a tre valori originari codificato con 2 codificato con 3 codificato con a) Trovare quanti errori può correggere e rivelare in generale. b) Si supponga di ricevere la sequenza. Assumendo che possano essere stati compiuti al più 2 errori, è possibile decodificare correttamente la sequenza? Come si giustifica la risposta in relazione al risultato trovato nel punto a)? Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6
53 Soluzione (a) Soluzione (b) a) Risulta: d 2 = d 23 = 5 d 3 = 6 quindi la distanza del codice è il codice non può (in generale) rivelare né tanto meno correggere alcun errore [errori rilevati: d k+, quindi con k= serve d 2] b) Ricevo, mentre avevo: dist = 4 2 dist 2 = 3 3 dist 3 = 2 In questo caso posso decodificare con il valore 3. Se sono stati commessi al più due errori, sono sicuro che la decodifica è corretta, perché: dist = 4 > 2 [ non può essere modificato in ] dist 2 = 3 > 2 [ non può essere modificato in ] Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8 Perchè? Tipologie di codici Come mai posso correggere due errori anche se (cfr. punto a) il codice ha distanza? La distanza del codice si riferisce al caso peggiore (distanza minima) le relative formule garantiscono le proprietà del codice di rivelazione e correzione di errori in ogni caso, ovvero per qualunque simbolo rappresentato e per qualunque posizione degli errori Per esempio, nel caso venga trasmesso (codificato con ), è sufficiente un errore sull ultimo bit per ottenere, che è pari alla codifica di 2 : in tal caso l errore non verrebbe neppure rivelato! Nel seguito vedremo tipologie di rappresentazioni diverse: Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2] Disponendo di un numero di bit limitato: numeri naturali interi relativi [valore assoluto e segno, compl. a, compl. a 2] reali [virgola fissa e virgola mobile] valori logici, caratteri alfabetici, testi suoni, immagini e sequenze video codici per la rivelazione e correzione di errori Codici di compressione (senza con perdita) Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione 2
54 La compressione dei dati Concetti fondamentali Cambiando modalità di codifica è possibile ridurre il numero dei bit richiesti Vantaggi per memorizzazione e trasmissione Esempio: rappresentare una sequenza di milione di caratteri, ognuno appartenente all insieme {A, C, G, T} se uso 4 configurazioni a 2 bit ho bisogno di 2 milioni di bit ma se so che la frequenza dei caratteri all interno della sequenza varia (es. 5% A, 25% C, 2.5% G e T) allora posso usare una codifica diversa: A =, C =, G = e T = Num. bit complessivi = (x5%+2x25%+3x2.5%+3x2.5%) x milione =.75 milioni Ho ridotto il numero di bit senza perdere informazione Per qualunque tecnica di compressione: data una sequenza di bit S Denotiamo con S il numero dei bit della sequenza funzione di compressione F c t.c. F c (S) < S rapporto di compressione S / F c (S) (NB: > ) funzione di decompressione F d per ricostruire la successione originaria: F d (F c (S)) Due tipi di compressione dei dati: senza perdita (lossless) è garantito che F d (F c (S)) = S, ovvero F d =F c - con perdita (lossy) in generale F d (F c (S)) S (perdita di informazione) Daniela Fogli Elementi di Informatica e Programmazione 2 Daniela Fogli Elementi di Informatica e Programmazione 22 Algoritmi di compressione dati senza perdita Algoritmi di compressione dati con perdita Si adottano quando non si può perdere informazione, es. programmi in formato eseguibile, file doc Svantaggio: ridotto rapporto di compressione Principio fondamentale: sottosequenze di bit frequenti sostituite con codici opportuni Esempi: formati ZIP e RAR (con un apposito programma di utilità - es. winzip - si può creare un archivio in cui i file vengono memorizzati in formato compresso) formato GIF (per le immagini raster): utilizzo di un dizionario con le configurazioni di valori che si ripetono Si applicano a dati che hanno origine nel mondo analogico (suoni, immagini, sequenze video, ecc.) Si adottano quando si è disposti a perdere una parte dell informazione durante la compressione: compromesso qualità/rapporto di compressione Tecniche dipendenti dalla natura del segnale considerato: per i suoni, variazioni di volume e frequenza al di sotto di una certa soglia non sono percepite dall orecchio umano; inoltre i suoni a basso volume sovrapposti a suoni di volume maggiore sono poco udibili (formato compresso MP3) per le immagini, lievi cambiamenti di colore in punti contigui non sono percepiti dall occhio umano (formato JPEG) nelle animazioni video, immagini successive hanno spesso molte parti uguali e si possono codificare solo le differenze (formato MPEG) Daniela Fogli Elementi di Informatica e Programmazione 23 Daniela Fogli Elementi di Informatica e Programmazione 24
Elementi di Informatica e Programmazione
Elementi di Informatica e Programmazione La Codifica dell informazione (parte 1) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente:
Informazione analogica e digitale
L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica
Sistemi di Numerazione Binaria NB.1
Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato
4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
CODIFICA DELL INFORMAZIONE E CODICI BINARI
Codifica dell informazione 1 CODIFICA DELL INFORMAZIONE E CODICI BINARI Andrea Bobbio Anno Accademico 2001-2002 Codifica dell informazione 2 La codifica dell informazione I sistemi di elaborazione operano
Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura
Informatica. Rappresentazione dei numeri Numerazione binaria
Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione
Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile
Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione
RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997
1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:
L'informazione e la sua codifica
L'informazione e la sua codifica Corso di Informatica CdL: Chimica Claudia d'amato [email protected] Informatica e telecomunicazione Cos è l informatica informatica? lo studio sistematico degli
Codifica binaria dei numeri
Codifica binaria dei numeri Caso più semplice: in modo posizionale (spesso detto codifica binaria tout court) Esempio con numero naturale: con 8 bit 39 = Codifica in virgola fissa dei numeri float: si
Sistemi di Numerazione
Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema
Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione
Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione Fondamenti di Informatica Michele Ceccarelli Università del Sannio [email protected] Angelo Ciaramella DMI-Università degli
(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, 7155 2 = 1, 431 0, 431 2 = 0, 862 0, 896 2 = 1, 792 0, 724 2 = 1, 448 0, 448 2 = 0, 896
2 Esercizio 2.2 La rappresentazione esadecimale prevede 16 configurazioni corrispondenti a 4 bit. Il contenuto di una parola di 16 bit può essere rappresentato direttamente con 4 digit esadecimali, sostituendo
2. Codifica dell informazione
2. Codifica dell informazione Codifica Una codifica è una regola per associare in modo univoco i valori di un dato da codificare con sequenze di simboli. La corrispondenza definita dalla codifica è arbitraria,
Alessandro Pellegrini
Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione
Logica e codifica binaria dell informazione
Politecnico di Milano Corsi di Laurea in Ingegneria Matematica e Ingegneria Fisica Dipartimento di Elettronica ed Informazione Logica e codifica binaria dell informazione Anno Accademico 2002 2003 L. Muttoni
Rappresentazione dei numeri in un calcolatore
Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri
I sistemi di numerazione
I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono
CODIFICA BINARIA. ... sono rappresentati ricorrendo a simboli che sintezzano il concetto di numerosità.
I METODI DI NUMERAZIONE I numeri naturali... sono rappresentati ricorrendo a simboli che sintezzano il concetto di numerosità. Il numero dei simboli usati per valutare la numerosità costituisce la base
Laboratorio di Informatica
per chimica industriale e chimica applicata e ambientale LEZIONE 2 Rappresentazione delle informazioni: numeri e caratteri 1 Codice La relazione che associa ad ogni successione ben formata di simboli di
Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri
Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri 1 Da base 2 a base 10 I seguenti esercizi richiedono di convertire in base 10 la medesima stringa binaria codificata rispettivamente
SISTEMI DI NUMERAZIONE E CODICI
SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema
Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico
M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p. 3/43 M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p.
Elementi di informatica
Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni
Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio
Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento
Rappresentazione binaria
Rappresentazione binaria DOTT. ING. LEONARDO RIGUTINI RICERCATORE ASSOCIATO DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 [email protected]
Codifica binaria e algebra di Boole
Codifica binaria e algebra di Boole Corso di Programmazione A.A. 2008/09 G. Cibinetto Contenuti della lezione Codifica binaria dell informazione Numeri naturali, interi, frazionari, in virgola mobile Base
ALGEBRA DELLE PROPOSIZIONI
Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra
Informatica. Rappresentazione binaria Per esempio +101010000 diventa +0.10101 10 18/10/2007. Introduzione ai sistemi informatici 1
Informatica Pietro Storniolo [email protected] http://www.pa.icar.cnr.it/storniolo/info200708 Numeri razionali Cifre più significative: : sono le cifre associate ai pesi maggiori per i numeri maggiori
Rappresentazione dell informazione Codifica Binaria
Fondamenti di Informatica Rappresentazione dell informazione Codifica Binaria Fondamenti di Informatica - D. Talia - UNICAL 1 Rappresentazione dell informazione Tutta l'informazione in un calcolatore è
Codifica dei numeri negativi
E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione
la scienza della rappresentazione e della elaborazione dell informazione
Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione
Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013
Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 In questo documento vengono illustrate brevemente le operazioni aritmetiche salienti e quelle logiche ad esse strettamente collegate.
Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
2.12 Esercizi risolti
Codifica dell'informazione 55 Lo standard IEEE prevede cinque cause di eccezione aritmetica: underflow, overflow, divisione per zero, eccezione per inesattezza, e eccezione di invalidità. Le eccezioni
Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.
Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE Comunicazione importante dalla prossima settimana, la lezione del venerdì si terrà: dalle 15:00 alle 17.15 in aula 311 l orario
Rappresentazione di informazioni con un alfabeto finito
Rappresentazione di informazioni con un alfabeto finito Sia A = { a 1,, a k } un insieme (alfabeto) di k simboli, detti anche lettere. Quante sono le sequenze composte da n simboli (anche ripetuti) di
Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2
Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2 1 Dott. Pasquale De Michele Dipartimento di Matematica e Applicazioni Università di Napoli Federico II Compl. Univ. Monte S.Angelo Via
Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio Rappresentazione dell Informazione
Informatica Generale 02 - Rappresentazione numeri razionali
Informatica Generale 02 - Rappresentazione numeri razionali Cosa vedremo: Rappresentazione binaria dei numeri razionali Rappresentazione in virgola fissa Rappresentazione in virgola mobile La rappresentazione
APPUNTI DI ELETTRONICA DIGITALE
APPUNTI DI ELETTRONICA DIGITALE ITIS MARCONI-GORGONZOLA docente :dott.ing. Paolo Beghelli pag.1/24 Indice 1.ELETTRONICA DIGITALE 4 1.1 Generalità 4 1.2 Sistema di numerazione binario 4 1.3 Operazioni con
la scienza della rappresentazione e della elaborazione dell informazione
Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione
Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri.
Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. A partire da questa lezione, ci occuperemo di come si riescono a codificare con sequenze binarie, quindi con sequenze di 0 e 1,
Rappresentazione delle informazioni
Rappresentazione delle informazioni Abbiamo informazioni (numeri, caratteri, immagini, suoni, video... ) che vogliamo rappresentare (e poter elaborare) in un calcolatore. Per motivi tecnologici un calcolatore
Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti
Un ripasso di aritmetica: Rappresentazione binaria - operazioni A queste rappresentazioni si possono applicare le operazioni aritmetiche: riporti 1 1 0 + 1 0 = 1 0 0 24 Un ripasso di aritmetica: Rappresentazione
Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno
Parte II Indice Operazioni aritmetiche tra valori rappresentati in binario puro somma sottrazione Rappresentazione di numeri con segno modulo e segno complemento a 2 esercizi Operazioni aritmetiche tra
Codifica binaria dei numeri relativi
Codifica binaria dei numeri relativi Introduzione All interno di un calcolatore, è possibile utilizzare solo 0 e 1 per codificare qualsiasi informazione. Nel caso dei numeri, non solo il modulo ma anche
11010010 = 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210
Il sistema BINARIO e quello ESADECIMALE. Il sistema di numerazione binario è particolarmente legato ai calcolatori in quanto essi possono riconoscere solo segnali aventi due valori: uno alto e uno basso;
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 05 La rappresentazione dell informazione Carla Limongelli Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ La rappresentazione
ESEMPIO 1: eseguire il complemento a 10 di 765
COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento
Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"
Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori" slide a cura di Salvatore Orlando & Marta Simeoni " Architettura degli Elaboratori 1 Interi unsigned in base 2" Si utilizza un
Corso di Calcolo Numerico
Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Sistemi di Numerazione Sistema decimale La
Elementi di Informatica. ( Lezione II, parte I ) Sistemi di numerazione: binario, ottale ed esadecimale
Elementi di Informatica ( Lezione II, parte I ) Sistemi di numerazione: binario, ottale ed esadecimale Il sistema di numerazione posizionale decimale Nella numerazione posizionale ogni cifra del numero
PROVA INTRACORSO TRACCIA A Pagina 1 di 6
PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento
Calcolatori: Algebra Booleana e Reti Logiche
Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato
La codifica delle informazioni
La codifica delle informazioni Bit e byte Come già visto l elaboratore è in grado di rappresentare informazioni al proprio interno solo utilizzando cifre binarie (bit) che solitamente vengono manipolate
Esercitazione Informatica I AA 2012-2013. Nicola Paoletti
Esercitazione Informatica I AA 2012-2013 Nicola Paoletti 4 Gigno 2013 2 Conversioni Effettuare le seguenti conversioni, tenendo conto del numero di bit con cui si rappresenta il numero da convertire/convertito.
Esercizi. Esercizi sulla codifica (Parte 1) Elementi di Informatica e Programmazione. Soluzioni degli esercizi Esercizio 2
Esercizi sulla codifica (Parte 1) Elementi di Informatica e Programmazione Docente: Dr. Daniela Fogli Esercizi 1. Convertire in formato decimale i seguenti numeri binari: 11, 101011, 1100, 111111, 10101010
Un ripasso di aritmetica: Conversione dalla base 10 alla base 16
Un ripasso di aritmetica: Conversione dalla base 1 alla base 16 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base sedici sarà del tipo: c m c m-1... c 1 c (le c i sono cifre
Andrea Bobbio CODIFICA DELL'INFORMAZIONE E CODICI BINARI Anno Accademico 1996-1997 1 Codiæca dell'informazione 2 La codiæca dell'informazione sistemi di elaborazione operano al loro interno soltanto I
Parte 1. Vettori di bit - AA. 2012/13 1.1
1.1 Parte 1 Vettori di bit 1.2 Notazione posizionale Ogni cifra assume un significato diverso a seconda della posizione in cui si trova Rappresentazione di un numero su n cifre in base b: Posizioni a n
Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori
Informazione e computer Si può rappresentare l informazione attraverso varie forme: Numeri Testi Suoni Immagini 0001010010100101010 Computer Cerchiamo di capire come tutte queste informazioni possano essere
Lezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE
Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Andrea Bobbio Anno Accademico 2000-2001 Algebra Booleana 2 Calcolatore come rete logica Il calcolatore può essere visto come una rete logica
Alcune nozioni di base di Logica Matematica
Alcune nozioni di base di Logica Matematica Ad uso del corsi di Programmazione I e II Nicola Galesi Dipartimento di Informatica Sapienza Universitá Roma November 1, 2007 Questa é una breve raccolta di
La codifica dell informazione
La codifica dell informazione Parte I Sui testi di approfondimento: leggere dal Cap. del testo C (Console, Ribaudo):.,. fino a pg.6 La codifica delle informazioni Un calcolatore memorizza ed elabora informazioni
4. Operazioni aritmetiche con i numeri binari
I Numeri Binari 4. Operazioni aritmetiche con i numeri binari Contare con i numeri binari Prima di vedere quali operazioni possiamo effettuare con i numeri binari, iniziamo ad imparare a contare in binario:
Sistemi di numerazione: generalità
Sistemi di numerazione: generalità Nel corso della storia sono stati introdotti diversi sistemi di numerazione, dettati di volta in volta dalle specifiche esigenze dei vari popoli. Poiché ogni numero maggiore
SISTEMI DI NUMERAZIONE DECIMALE E BINARIO
SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono
Fondamenti di Informatica
Università degli Studi di Messina Facolta di Ingegneria - 98100 Messina Tel. (090) 393229 - Fax (090) 393502 Fondamenti di Informatica Ing. delle Tecnologie Industriali Docente: Ing. Mirko Guarnera 1 Sistemi
Il concetto di valore medio in generale
Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo
Informazione binaria: caratteri e testi suoni, immagini, sequenze video
Informazione binaria: caratteri e testi suoni, immagini, sequenze video Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Tipologie di codici
SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE
SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE La base del sistema decimale è 10 I simboli del sistema decimale sono: 0 1 2 3 4 5 6 7 8 9 Il sistema di numerazione decimale è un sistema posizionale. L aggettivo
LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1
LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD
Variabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
ESERCIZI di FONDAMENTI DI INFORMATICA RAPPRESENTAZIONE DEI NUMERI
ESERCIZI di FONDAMENTI DI INFORMATICA RAPPRESENTAZIONE DEI NUMERI Esercizio 1 Indicare come un elaboratore effettua la seguente operazione, supponendo di operare con numeri interi rappresentati in complemento
Sommario. Addizione naturale
Sommario Introduzione Rappresentazione dei numeri interi positivi Rappresentazione dei numeri interi Operazioni aritmetiche Modulo e segno Addizione e sottrazione urale Addizione e sottrazione in complemento
Codifica delle Informazioni
Codifica delle Informazioni Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Panoramica Le informazioni gestite dai sistemi di elaborazione devono essere codificate
Memorie ROM (Read Only Memory)
Memorie ROM (Read Only Memory) Considerando la prima forma canonica, la realizzazione di qualsiasi funzione di m variabili richiede un numero di porte AND pari al numero dei suoi mintermini e di prolungare
Definizioni iniziali
Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Definizioni iniziali BIT: unita elementare di informazione Due soli valori: 0 e 1 Byte: sequenza di 8 bit Fondamenti di Informatica: Codifica
Aritmetica dei Calcolatori 1
Architettura degli Elaboratori e Laboratorio 1 Marzo 2013 1 Sistema di numerazione sistema posizionale 2 rappresentazione binaria cambio di base basi potenze di 2 3 Rappresentazione binaria con segno Sistema
Convertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
IL CODICE BINARIO. Il codice binario. Codifica posizionale. Aritmetica binaria
IL CODICE BINARIO Il codice binario Codifica posizionale Aritmetica binaria www.stoianov.it 1 CODIFICA DI BASE La voce si distribuisce con onde di frequenze 20-20.000 Hz La luce sta nel ordine di 500.000.000.000.000
Fondamenti di Informatica 2. Le operazioni binarie
Corso di per il corso di Laurea di Ingegneria Gestionale Le operazioni binarie Università degli Studi di Udine - A.A. 2010-2011 Docente Ing. Sandro Di Giusto Ph.D. 1 L'algebra binaria Il fatto di aver
Appunti sulla rappresentazione dell informazione
Appunti sulla rappresentazione dell informazione Roberto Beraldi DISPENSA PER IL CORSO DI FONDAMENTI DI INFORMATICA CORSI DI LAUREA IN INGEGNERIA CHIMICA, DEI MATERIALI,NUCLEARE (vecchi ordinamenti) Anno
Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):
Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande
C. P. U. MEMORIA CENTRALE
C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato
LA NUMERAZIONE BINARIA
LA NUMERAZIONE BINARIA 5 I SISTEMI DI NUMERAZIONE Fin dalla preistoria l uomo ha avuto la necessità di fare calcoli, utilizzando svariati tipi di dispositivi: manuali (mani, bastoncini, sassi, abaco),
Base generica: B A = {... }, con A = B, sequenze di n simboli (cifre) c n
Rappresentare le informazioni con un insieme limitato di simboli (detto alfabeto A) in modo non ambiguo (algoritmi di traduzione tra codifiche) Esempio: numeri interi assoluti Codifica decimale (in base
ALGEBRA BOOLEANA FONDAMENTI DI INFORMATICA 1. Algebra di Boole. Definizione NOT, AND, OR
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica, Chimica, Elettrica e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011 Docente: Gian
Appunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
Numerazione binaria e rappresentazione delle informazioni
Numerazione binaria e rappresentazione delle informazioni Info Sito del corso: http://home.dei.polimi.it/amigoni/informaticab.html Nicola Basilico, [email protected] Problema Abbiamo informazioni
Materiale di approfondimento: numeri interi relativi in complemento a uno
Materiale di approfondimento: numeri interi relativi in complemento a uno Federico Cerutti AA. 2011/2012 Modulo di Elementi di Informatica e Programmazione http://apollo.ing.unibs.it/fip/ 2011 Federico
Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009. Prof. Raffaele Nicolussi
Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi [email protected] Lezioni
Modulo 8. Elettronica Digitale. Contenuti: Obiettivi:
Modulo 8 Elettronica Digitale Contenuti: Introduzione Sistemi di numerazione posizionali Sistema binario Porte logiche fondamentali Porte logiche universali Metodo della forma canonica della somma per
INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
