Premessa Elementi di Informatica e Programmazione Abbiamo visto il concetto astratto di calcolatore: non com’è fatto o come funziona, ma che cos’è in sé La Codifica dell’informazione Concetto di problema (classe di domande omogenee, alle quali si possa dare risposta con una procedura uniforme), istanza, (parte 1) soluzione Concetto di algoritmo (specifica attraverso una sequenza di istruzioni come produrre una soluzione per ogni istanza) Concetto di programma (descrizione formale di un algoritmo) Il calcolatore come esecutore universale di programmi Corsi di Laurea in: Ingegneria Civile Ingegneria per l’Ambiente e il Territorio Università degli Studi di Brescia Ora cominciamo a esaminare come “in pratica” i calcolatori attuali sono in grado di interpretare i programmi ed eseguirli Docente: Daniela Fogli Cominciamo a parlare di rappresentazione dell’informazione Daniela Fogli – Elementi di Informatica e Programmazione Il concetto di informazione e supporto 2 Proprietà di un 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 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 Il CD in cui è memorizzato Un brano musicale Elemento di informazione rappresentato dalla configurazione del supporto (es. soccorso sanitario: ) L’aria attraverso cui viene trasmesso Associazione simboli-significati: convenzione semantica Es. di convenzione semantica alternativa: soccorso sanitario: … Daniela Fogli – Elementi di Informatica e Programmazione 3 Daniela Fogli – Elementi di Informatica e Programmazione 4 Codice Successione di simboli Attività di interpretazione Esempio di codice Attraverso il codice si attribuisce un significato convenzionale a ciascuna configurazione che il supporto può assumere Entità di informazione ES., 2 dadi E’ necessario un codice: • un insieme di regole che stabiliscono le associazioni fra configurazioni e entità di informazione • Daniela Fogli – Elementi di Informatica e Programmazione 5 Codifica e Decodifica letta (da un supporto fisico) decodifica Daniela Fogli – Elementi di Informatica e Programmazione …. Daniela Fogli – Elementi di Informatica e Programmazione 6 Istruzioni e dati devono essere rappresentate (codificate) secondo il linguaggio noto all’esecutore Decodifica = operazione con cui l’informazione viene 10 ⇒ lettera B • Programma = istruzioni che operano su dati scritta (su un supporto fisico) Il numero “dieci” • ⇒ lettera A Codifica dei dati e delle istruzioni Codifica = operazione con cui l’informazione viene codifica • L’esecutore deve essere infatti in grado di memorizzare e manipolare istruzioni e dati Informazione Supporto fisico 7 Daniela Fogli – Elementi di Informatica e Programmazione 8 Che linguaggio è in grado di interpretare un calcolatore? Linguaggio binario Hardware: i componenti fisici di un calcolatore Ai due stati sono convenzionalmente associati i valori “0” e “1” In pratica, l’hardware è costruito con una delle seguenti tecnologie: Tecnologie elettroniche: Quindi, in un calcolatore, istruzioni e dati vengono codificati come sequenze di 0 e 1 elementi fondamentali: transistor sono considerati due livelli di tensione (alta/bassa) Tecnologie magnetiche: memorie costituite da materiale magnetizzabile (es: HD) due stati di polarizzazione (positiva/negativa) Tecnologie ottiche: 010101001111001111010111010101011011 materiali con proprietà ottiche rilevate da raggio laser (es: CD) due stati (es: assenza o presenza di un pit) Daniela Fogli – Elementi di Informatica e Programmazione 9 Codifica binaria 10 Il problema della rappresentazione Alfabeto binario = {0, 1} dove 0 e 1 sono dette cifre binarie o BIT (Binary digIT) Insieme di simboli disponibili nel calcolatore = {0, 1} Insieme di “oggetti” che vogliamo rappresentare Abbiamo quindi il problema di rappresentare tutte le informazioni di interesse (i dati: numeri, testi, immagini, filmati, ecc., e le istruzioni) in linguaggio binario: ci occuperemo della codifica binaria dell’informazione Daniela Fogli – Elementi di Informatica e Programmazione Daniela Fogli – Elementi di Informatica e Programmazione Problema: assegnare un codice univoco a tutti gli oggetti compresi in un insieme 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 0 e 1, quanto è il numero n di oggetti che posso codificare? 11 Daniela Fogli – Elementi di Informatica e Programmazione 12 Codice binario a k bit Codifica binaria • Funzione: - dominio (insieme di oggetti da rappresentare) - codominio: insieme di tutte le possibili sequenze di k bit Se k = 1 • Funzione biunivoca tra il dominio e la sua immagine, detta insieme delle codifiche Se k = 2 • Esempio di codice binario a 3 bit: Se k = 3 Posso codificare 4 oggetti: 00, 01, 10, 11 Posso codificare 8 oggetti: 000, 001, 010, 011, 100, 101, 110, 111 110 100 O1 011 O3 Posso codificare 2 oggetti: al primo assegno il codice ‘0’ e al secondo assegno il codice ‘1’ 101 O2 111 Qual è la regola? (Ipotesi implicita: i codici hanno tutti la stessa lunghezza) insieme delle codifiche 001 010 dominio codominio 000 Daniela Fogli – Elementi di Informatica e Programmazione Daniela Fogli – Elementi di Informatica e Programmazione 13 La regola Viceversa … Se ho N oggetti da codificare (con due simboli 0 e 1): qual è il numero minimo k di bit necessario? Se ho a disposizione sequenze di k bit, quanti elementi posso codificare (ovvero, qual è il numero N di oggetti distinti che posso rappresentare con un codice a k bit)? Se N = 128, ho bisogno di k = 7 bit perché 27 = 128 infatti k = log2128 = 7 N = 2k Se N = 129, ho bisogno di 1 bit in più infatti k = log2129 = 8 in questo caso, ottengo uno spreco di configurazioni, perché con 8 bit posso codificare fino a 256 elementi Daniela Fogli – Elementi di Informatica e Programmazione 14 15 k = log2N Daniela Fogli – Elementi di Informatica e Programmazione 16 Esempio: i mesi dell’anno 1 bit 2 gruppi Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre Gennaio Marzo Maggio Luglio Settembre Ottobre Novembre Dicembre Luglio Settembre Novembre Gennaio 000 Febbraio 010 Marzo 001 Maggio Aprile 011 Giugno Luglio 100 Agosto 110 Settembre 101 Novembre Ottobre 111 Dicembre 3 bit 8 gruppi Cifra Codifica binaria decimale rappresentata b3 b2 b1 b0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 2 bit 4 gruppi Gennaio Febbraio Marzo Aprile Maggio Giugno 0 Agosto 1 Esempio: codifica BCD 00 10 Gennaio 0000 Febbraio Aprile Giugno Agosto Ottobre Dicembre 01 11 Febbraio 0100 Marzo 0010 Aprile 0110 Maggio 0011 Giugno 0111 Luglio 1000 Agosto 1100 Settembre 1010 Ottobre 1110 Novembre 1011 Dicembre 1111 4 bit 16 gruppi… mancano 4 configurazioni! Daniela Fogli – Elementi di Informatica e Programmazione 17 Tipologie di codici codifiche non usate Daniela Fogli – Elementi di Informatica e Programmazione Tipologie di codici Nel seguito vedremo tipologie di rappresentazioni diverse: 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: 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 1, 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 numeri naturali interi relativi [valore assoluto e segno, compl. a 1, 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 18 Codici di compressione (senza | con perdita) 19 Daniela Fogli – Elementi di Informatica e Programmazione 20 Sistema di numerazione posizionale Sistema di numerazione posizionale Esempio: b=10, il numero 3256.234 Ad ogni cifra del numero è attribuito un peso a seconda della sua posizione all’interno del numero dove c3 = 3, c2 = 2, c1 = 5, c0 = 6, c-1=2, c-2=3, c-3 =4 rappresenta 3x103 + 2x102 + 5x101 + 6x100 + 2x10-1 + 3x10-2 + 4x10-3 = = 3000 + 200 + 50 + 6 + 0.2 + 0.03 + 0.004 Sistema di numerazione posizionale in base b: Numero Nb = ckck-1ck-2…c0.c-1c-2…cc-h Dove ck è la cifra più significativa c0 è la cifra meno significativa (della parte intera) c-1 è la cifra più significativa della parte frazionaria c-h è la cifra meno significativa della parte frazionaria Nb è il numero ottenuto facendo: Perché l’essere umano conta in base dieci? ckxbk+ck-1xbk-1+ck-2xbk-2…+c0xb0 +c-1xb-1+…+c-hxb-h Daniela Fogli – Elementi di Informatica e Programmazione Daniela Fogli – Elementi di Informatica e Programmazione 21 Le basi più comuni 22 Notazione Binaria Base = 2 Se la base è b, allora le cifre che possono essere utilizzate per comporre un numero vanno Cifre: 0, 1 Numeri espressi nella forma (cn cn-1 … c1 c0 . c-1 c-2 …)due da 0 a b-1 [ci ∈ {0,1}] il cui “valore” è (cn*2n + cn-1*2n-1 + … + c0*20 + c-1 * 2-1 + c-2 *2-2 …) Esempio: b = 10, cifre possibili: [0,1,2,3,4,5,6,7,8,9] Esempio: b = 2, cifre possibili: [0,1] Esempio: b = 8, cifre possibili: [0,1,2,3,4,5,6,7] Esempio: b = 16, cifre possibili: [0,1,2,3,4,5,6,7,8,9,A, B,C,D,E,F] ESEMPIO N = 101011.1011due N = 1 25 + 0 24 + 1 23 + 0 22 + 1 21 + 1 20 + 1 2-1 + 0 2-2 + 1 2-3 + 1 2-4 = = 43.6875dieci Daniela Fogli – Elementi di Informatica e Programmazione 23 Daniela Fogli – Elementi di Informatica e Programmazione 24 Conversione binario ⇒ decimale Domande Come visto, la conversione si ottiene direttamente dalla definizione stessa di numero binario Il numero binario 101001011due è pari o dispari? A quale numero decimale corrisponde? Scriviamo i numeri denotando la base attraverso il pedice: es. 1101.1due E’ facile convertirlo in un numero decimale facendo: 101001011due = (1x28 + 0x27 + 1x26 + 0x25 + 0x24 + 1x23 + 0x22 + 1x21 + 1x20)dieci = (256 + 64 + 8 + 2 + 1)dieci = 331dieci 1101.1due = 1x23 + 1x22 + 0x21 + 1x20 + 1x2-1 = 8dieci + 4dieci + 0dieci + + 1dieci + 0.5dieci = 13.5dieci Altri esempi: 10101.01due = 1x24 + 0x23 + 1x22 + 0x21 + 1x20 + 0x2-1 + 1x2-2 = 16 + + 4 + 1 + 0.25 = 21.25dieci 110010.001due= 1x25 + 1x24 + 0x23 + 0x22 + 1x21 + 0x20 + …+ 1x2-3 = = 32 + 16 + 2 + 0.125 = 50.125dieci Daniela Fogli – Elementi di Informatica e Programmazione 26 Conversione decimale ⇒ binario Conversione decimale ⇒ binario metodo pratico Regola pratica per convertire la parte intera Usare lo stesso metodo visto prima è complesso! Si noti che: 10dieci 2dieci Esempio: 3dieci 345dieci = 11x101010 + 100x101001 + 101x10100 = … ckck-1ck-2…c0 si può scrivere anche come ckck-1ck-2c1xb+c0 Ad esempio: 3256 = 325x10 + 6 325 = 32x10 + 5 32 = 3x10 + 2 3=0x10 + 3 … 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” (in base b = dieci) In pratica, per “isolare” le cifre del numero, basta fare una serie di divisioni per la base e tenere il resto Dato un numero decimale N, innanzitutto distinguiamo parte intera e la parte frazionaria: N = I.F (ES: dato 56.5dieci, convertiamo separatamente 56 e 0.5) Daniela Fogli – Elementi di Informatica e Programmazione Daniela Fogli – Elementi di Informatica e Programmazione 25 Alla fine, quando il numero è diventato 0, si leggono i resti dall’ultimo al primo e si ottiene di nuovo il numero 27 Daniela Fogli – Elementi di Informatica e Programmazione 28 Conversione decimale ⇒ binario Esempio di conversione da decimale a binario metodo pratico 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 137dieci = ?due 137 div 2 = 68 Esempio: 56 div 2 = 28 28 div 2 = 14 14 div 2 = 7 7 div 2 = 3 3 div 2 = 1 1 div 2 = 0 con con con con con con resto resto resto resto resto resto 0 (cifra meno significativa del numero bin) 0 0 1 1 1 (cifra più significativa del numero bin) con resto 1 68 div 2 = 34 con resto 0 34 div 2 = 17 con resto 0 17 div 2 = 8 con resto 1 8 div 2 = 4 con resto 0 4 div 2 = 2 con resto 0 2 div 2 = 1 con resto 0 1 div 2 = 0 con resto 1 Si ottiene 111000due = 32dieci + 16dieci + 8dieci + 0 + 0 + 0 = 56dieci Si legge dal basso verso l’alto !!! Risultato = 10001001due Esercizio: riconvertire il risultato in decimale Daniela Fogli – Elementi di Informatica e Programmazione Daniela Fogli – Elementi di Informatica e Programmazione 29 Errore Tipico (1) 81 40 20 10 5 2 1 0 1 0 0 0 1 0 1 Errore Tipico (2) 88 44 22 11 5 2 1 E’ un errore considerare la prima cifra ottenuta come la più significativa otterrei 1000101 che vale 69! 0 0 0 1 1 0 E’ un errore fermarsi quando si ottiene 1 come dividendo otterrei 011000 (24) anziché 1011000 (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 ( 0…0xyz ) ! Daniela Fogli – Elementi di Informatica e Programmazione 30 NB: se si è colti dal dubbio, ricordare che la prima cifra significativa in questo caso vale sempre 1 31 Daniela Fogli – Elementi di Informatica e Programmazione 32 Conversione da decimale a binario della parte frazionaria Regola pratica per convertire la parte frazionaria 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: 0.587dieci binario? F = a-1*b-1 + a-2*b-2 + ....... + a-n*b-n (dove b è la base) F * b = a-1 + a-2*b-1 + ....... + a-n*b-(n-1) la parte intera è a-1 (F*b - a-1) * b = a-2 + ....... + a-n*b-(n-2) la parte intera è a-2 ... . 0.587 x 2 = 1.174: p.f. 0.174, parte intera 1 (cifra più significativa) 0.174 x 2 = 0.348: p.f. 0.348, parte intera 0 0.348 x 2 = 0.696: p.f. 0.696, parte intera 0 0.696 x 2 = 1.392: p.f. 0.392, parte intera 1 0.392 x 2 = 0.784: p.f. 0.784, parte intera 0 0.784 x 2 = 1.568: p.f. 0.568, parte intera 1 …. Es. con b = 10, sia F = .531 .531 x 10 = 5 + .31 .31 x 10 = 3 + .1 .1 x 10 = 1 la parte intera è 5 la parte intera è 3 la parte intera è 1 Le 3 cifre che costituiscono il numero Si ottiene 0.10010due con 5 cifre binarie dopo la virgola, oppure 0.100101due con 6 cifre binarie dopo la virgola, oppure… In ogni caso c’è un’approssimazione Ma a noi interessa che la base di arrivo sia la base 2 … Daniela Fogli – Elementi di Informatica e Programmazione 33 Esempio: convertire 43.687dieci in binario 43 1 .687 x 2 p.i. 1 21 1 .374 x 2 p.i. 0 10 0 .748 x 2 p.i. 1 5 1 .496 x 2 p.i. 0 2 0 .992 x 2 p.i. 1 1 1 .984 … Daniela Fogli – Elementi di Informatica e Programmazione 34 Operazioni aritmetiche Operazioni +, -, *, / su numeri in base 2 Valgono le stesse regole e proprietà delle operazioni in base 10 0 43.687dieci = 101011.10101due (fermandosi al quinto bit per la parte frazionaria) Daniela Fogli – Elementi di Informatica e Programmazione 35 Daniela Fogli – Elementi di Informatica e Programmazione 36 Aritmetica binaria: addizione + 0 1 0 0 1 Aritmetica binaria: sottrazione 0 1 1 1 (1) 0 0 0 1 1 (1) 1 0 Riporto: 1 + 1 = 2dieci = 10due Prestito (borrow): 102 – 12 (= 210 – 110) = 012 Esempio: Esempio: 110+ 10= _________ 6 1110 – 14 2 11 = 3 _________ 1000 1011 Daniela Fogli – Elementi di Informatica e Programmazione Daniela Fogli – Elementi di Informatica e Programmazione 37 0 0 0 38 Altri esempi di operazioni aritmetiche in base 2 Aritmetica binaria: moltiplicazione * 0 1 11 1 0 1 moltiplicazione addizione 1011+ Esempio: 111010* 1011= 58 11 0111= ______ __________ 111010 111010 000000 111010 10010 11000011= __________ 1001 _______________________________________ 1001111110 sottrazione 638 1101× 1011= _______ 1101+ 1101 + 0000 + 1101 + _____________ 10001111 Esercizio: controllare se i risultati sono corretti convertendo in decimale Daniela Fogli – Elementi di Informatica e Programmazione 39 Daniela Fogli – Elementi di Informatica e Programmazione 40 Moltiplicazione/divisione per potenze di 2 Numeri in base 8 (ottali) Le cifre: [0, 1, 2, 3, 4, 5, 6, 7] Moltiplicazione per 2n: spostamento della virgola a destra di n posizioni (con eventuale aggiunta di zeri alla fine del numero) 17otto = ?dieci 1otto = 1dieci 17otto = (1 x 24 Es. 1010.10111 x = 10101011.1 5 Es. 1010.10 x 2 = 101010000 7otto = 7dieci 81 +7x 80)dieci = (8 + 7)dieci = 15dieci 372otto = ?dieci 372otto = (3 x 82 + 7 x 81 + 2 x 80)dieci = (3 x 64 + 56 + 2)dieci = 250dieci Divisione per 2n (o moltiplicazione per 2-n): spostamento della virgola a sinistra di n posizioni Es. 1010.10111 / 23 = 1.01010111 (equivalente a 1010.10111 x 2-3) Daniela Fogli – Elementi di Informatica e Programmazione Numeri in base 16 (esadecimali) 42 I primi 16 numeri in base 10, 2, 8, e 16 decimale 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Le cifre: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F] 7D2sedici = ?dieci 7sedici = 7dieci Dsedici = 13dieci 2sedici = 2dieci 7D2sedici = (7 x 162 + 13 x 161 + 2 x 160)dieci = (7 x 256 + 208 + 2)dieci = (1792 + 208 + 2)dieci = 2002dieci FAsedici = ?dieci Fsedici = 15dieci Asedici = 10dieci FAsedici = (15 x 161 + 10 x 160)dieci = (240 + 10)dieci = 250dieci Daniela Fogli – Elementi di Informatica e Programmazione Daniela Fogli – Elementi di Informatica e Programmazione 41 43 Sistema di numerazione binario ottale 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 10 1001 11 1010 12 1011 13 1100 14 1101 15 1110 16 1111 17 esadecimale 0 1 2 3 4 5 6 7 8 9 A B C D E F Daniela Fogli – Elementi di Informatica e Programmazione 44 Conversione binario ⇒ ottale Perché le basi 2, 8 e 16? Tabella di conversione 0otto 000due 001due 1otto 010 due 2otto 011due 3otto 100due 4otto 101due 5otto 110due 6otto 111due 7otto 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 16 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 11 110 110 100.001due = 3 6 6 4 .1otto 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 Daniela Fogli – Elementi di Informatica e Programmazione 45 Conversione binario ⇒ esadecimale 46 Errore Tipico Convertire in notazione ottale il numero binario 10111010.11 Tabella di conversione 0000due 0001due 0010due 0011due 0100due 0101due 0110due 0111due 1000due 1001due 1010due 1011due 1100due 1101due 1110due 1111due 0sedici 1sedici 2sedici 3sedici 4sedici 5sedici 6sedici 7sedici 8sedici 9sedici Asedici Bsedici Csedici Dsedici Esedici Fsedici 10111010.11 5 6 2. 3 111 1011 0100due = 7 B 4sedici Invece 562.38 = 5*64 + 6*8 + 2 + 3/8 = 370.375 che sicuramente non può essere rappresentato con una parte intera di soli 8 bit!!! Si procede nello stesso modo, ma separando le cifre a gruppi di 4 anziché di 3 Daniela Fogli – Elementi di Informatica e Programmazione PARTIRE SEMPRE DAL PUNTO DECIMALE, EVENTUALMENTE COMPLETANDO LE CIFRE CON DEGLI ZERI PER OTTENERE LE TERNE: xxx xxx . yyy yyy … 47 Daniela Fogli – Elementi di Informatica e Programmazione 48 Esecuzione corretta Un altro esempio Convertire in binario il numero in notazione ottale 135.18 L’esercizio quindi va risolto così: 10111010.110 2 7 2 . 68 1 3 5.18 0 0 1 0 1 1 1 0 1 . 001 ERRORE TIPICO: CONVERTIRE IN infatti risulta 272.68 = 2*64 + 7*8 + 2 + 6/8 = 186.7510 001 011 101 . 1 e 10111010.112 = 128 + 32 + 16 + 8 + 2 + 0.5 + 0.25 = 186.7510 infatti 0.18 = 1/8 = 0.125 mentre 0.12 = 1/2 = 0.5 Daniela Fogli – Elementi di Informatica e Programmazione 49 Esempi di conversione esadecimale-binario 1) 0111010 .1 Daniela Fogli – Elementi di Informatica e Programmazione 50 Esercizio (in aula) Dato il numero binario 001010110111due convertirlo in un numero ottale e poi in un numero esadecimale 3 A . 816 Convertire il numero ottale in numero decimale 2) E 3 . 716 Numero ottale: 001 010 110 111 1267otto 11100011.0111 Numero esadecimale: 0010 1011 0111 2B716 Numero decimale: 1267otto = (1x83 + 2x82 + 6x81 + 7x80)dieci = (512 + 128 + 48 + 7)dieci = 695dieci ATTENZIONE!!! PARTIRE SEMPRE DAL PUNTO DECIMALE!!! xxxx . xxxx xxxx Daniela Fogli – Elementi di Informatica e Programmazione 51 Daniela Fogli – Elementi di Informatica e Programmazione 52 Esercizio (in aula) Esercizi Se la base considerata è b = 4, quali sono le cifre utilizzate per comporre i numeri? [0,1,2,3] Convertire il numero (1320)quattro nel corrispondente numero in base 10 1320quattro = (1x43 + 3x42 + 2x41 + 0x40)dieci = (64 + 48 + 8)dieci = 120dieci Qual è il numero massimo rappresentabile in base 3 con quattro cifre (espresso in base 3)? 2222tre Daniela Fogli – Elementi di Informatica e Programmazione 1. Convertire in formato decimale i seguenti numeri binari: 11, 101011, 1100, 111111, 10101010 2. Convertire in decimale i seguenti numeri frazionari binari : 0.111, 0.0101, 0.00011 3. Convertire in formato decimale i seguenti numeri ottali: 12, 23, 345, 333.14, 560.271 4. Convertire in formato decimale i seguenti numeri esadecimali: 12.5, DAB, 15D, FFFF, 51A 5. Convertire in binario i seguenti numeri decimali (considerando 6 bit per la parte frazionaria): 45.226, 234.349, 67.712, 83.8123 6. Convertire in ottale e in esadecimale i numeri binari ottenuti dalla conversione dei numeri decimali di cui al punto precedente 53 Daniela Fogli – Elementi di Informatica e Programmazione 54