Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110
in base e una base Fondamenti di Informatica: Codifica Binaria dell Informazione 2 Cifre necessarie per rappresentare numero Sia dato un numero naturale. Qual e il minimo numero di cifre necessarie a rappresentare? Date cifre in base, posso distinguere tra casi diversi. Considerando valori numerici NATURALI, posso rappresentare tutti i valori tali che Devo allora trovare un intero tale che: Il minimo numero di cifre e :
Fondamenti di Informatica: Codifica Binaria dell Informazione 3 Cifre necessarie per rappresentare numero Come calcolo?. Pertanto: Segue che (trunc = troncamento alla parte intera)
Fondamenti di Informatica: Codifica Binaria dell Informazione 4 Esempi 1. Quanti bit sono necessari a rappresentare il valore 24062? trunc(14.55) = 14 Numero bit necessari: Infatti:
Numero bit necessari: Fondamenti di Informatica: Codifica Binaria dell Informazione 5 Esempi 2. Quanti bit sono necessari a rappresentare il valore 65536? Infatti: e 65535!, cioe posso rappresentare tutti i numeri compresi tra 0 3. Quanti bit sono necessari a rappresentare il valore 65535? trunc(15.99)=15 Numero bit necessari:
Fondamenti di Informatica: Codifica Binaria dell Informazione 6 Rappresentare valori numerici nel calcolatore RAM composta da celle Ogni SOTTOCELLA contiene un bit (0 o 1) DIMENSIONE DELLA CELLA (parola): numero di BIT che puo contenere DIMENSIONE DELLA CELLA e fissata Tipica dimensione delle parole: 8, 16, 32, 64 BIT Come rappresento i valori numerici nel calcolatore?
Fondamenti di Informatica: Codifica Binaria dell Informazione 7 Rappresentare valori numerici nel calcolatore Supponiamo di avere celle da 8 bit = 1 byte Che valori possiamo rappresentare? 255 Quindi: riusciamo a rappresentare tutti i numeri naturali da 0 a PROBLEMI 1. Come memorizzo valori piu grandi di 255? 2. Come rappresento i numeri negativi? 3. Come rappresento i numeri reali?
Fondamenti di Informatica: Codifica Binaria dell Informazione 8 Rappresentazione di interi Per rappresentare valori maggiori di 255 e sufficiente accostare piu celle. NB 1: Non accosto BIT, ma CELLE! NB 2: accostamento e fatto via software, non hardware. Avendo calcolatori a 8 bit, posso avere dati a 16 o 32 bit!
Fondamenti di Informatica: Codifica Binaria dell Informazione 9 Rappresentazione di interi Problema: Dato il massimo numero da rappresentare, quante celle mi servono in un calcolatore a bit (cioe : con celle di dimensione )? Risposta: 1. Calcolo il numero di bit necessari a rappresentare il numero, come visto in precedenza: chiamiamolo. 2. Effettuo la divisione intera tra cella: DIV e il numero di bit che compone una 3. Risultato
ESEMPIO Fondamenti di Informatica: Codifica Binaria dell Informazione 10 Si vogliono rappresentare tutti gli interi tra 0 e 10 miliardi: Servono 34 BIT. Usando celle da 8 BIT: celle (5 BYTES).. A vremo bisogno di 34 DIV 8 + 1 = 5 Usando celle da 16 BIT: = 3 celle.. A vremo bisogno di 34 DIV 16 + 1 Usando celle da 32 BIT: 1 = 2 celle.. A vremo bisogno di 34 DIV 32 +
Fondamenti di Informatica: Codifica Binaria dell Informazione 11 Rappresentazione di interi Problema: rappresentare numeri positivi e negativi, con l informazione relativa al segno. Vedremo due metodi: 1. Modulo e Segno: metodo intuitivo 2. Complemento a due: semplifica operazioni artimetiche sugli interi
Fondamenti di Informatica: Codifica Binaria dell Informazione 12 Rappresentazione di interi in MODULO e SEGNO Segno del valore puo essere + o -. Per memorizzare questa informazione e sufficiente un singolo BIT. BIT DI SEGNO: 0 = +, 1 = - (per convenzione) Avendo a disposizione uso bit, bit per il MODULO del numero e 1 bit (quello piu significativo) per il SEGNO. Posso rappresentare tutti i valori tali che NB: Zero positivo e zero negativo!
Fondamenti di Informatica: Codifica Binaria dell Informazione 13 MODULO e SEGNO: Esempio Supponiamo di utilizzare dati a 8 BIT. Un BIT viene usato per il segno e 7 BIT per il modulo Possiamo rappresentare tutti gli interi tra -127 e 127, NOTA:,
Fondamenti di Informatica: Codifica Binaria dell Informazione 14 Somma di due interi Come sommo due interi in formato MODULO e SEGNO? 1. Confronto i BIT DI SEGNO dei numeri: 2. SE i BIT sono uguali BIT DI SEGNO risultato = BIT di SEGNO dei 2 valori ROUTINE DI SOMMA 3. SE i BIT sono differenti Confronta i valori assoluti dei due numeri BIT DI SEGNO risultato = BIT di SEGNO intero piu grande ROUTINE DI SOTTRAZIONE
Fondamenti di Informatica: Codifica Binaria dell Informazione 15 Complemento a due Scopo: semplificare operazioni aritmetiche su valori interi. Metodo (supponiamo celle a bit): Il BIT piu a sinistra e interpretato come BIT DI SEGNO La cifra contenuta nel BIT DI SEGNO e coefficiente della potenza Le restanti cifre rappresentano i coefficienti delle restanti potenze di due (da 0 a ), nel modo usuale Con bit rappresento i valori t.c. NOTA: vi e un solo valore 0!
ESEMPI Fondamenti di Informatica: Codifica Binaria dell Informazione 16 1. SOMMA DI POSITIVI 2. SOMMA DI POSITIVI NB: non compare il valore 109! 3. 4.
Fondamenti di Informatica: Codifica Binaria dell Informazione 17 Complemento a due I numeri positivi sono rappresentati come nella rappresentazione in modulo e segno I numeri negativi sono rappresentati in modo che i 7 BIT a destra del BIT DI SEGNO rappresentano il COMPLEMENTO A 2 del numero considerato valore assoluto del numero
Fondamenti di Informatica: Codifica Binaria dell Informazione 18 Complemento a due Il complemento a due di un numero intero negativo seguente: si ottiene nel modo Si calcola il valore binario del modulo (valore assoluto) di Si COMPLEMENTANO i bit del modulo N del numero: ogni 1 e convertito in 0 e viceversa Si somma 1 al risultato ottenuto Si pone a 1 il bit si segno
Fondamenti di Informatica: Codifica Binaria dell Informazione 19 ESEMPIO - Complemento a due Rappresentare il valore -78 in complemento a due. Valore assoluto in binario= 78 = 1001110 Bit complementati: 0110001 Sommare 1 al risultato ottenuto: 0110010 Porre a 1 il bit si segno: 1 0110010 Verifica:
Fondamenti di Informatica: Codifica Binaria dell Informazione 20 Complemento a due vs. modulo e segno Intero M&S Comp. 2-4 - 1 00-3 1 11 1 01-2 1 10 1 10-1 1 01 1 11-0 1 00 - +0 0 00 0 00 +1 0 01 0 01 +2 0 10 0 10 +3 0 11 0 11
Fondamenti di Informatica: Codifica Binaria dell Informazione 21 Somma e sottrazione in complemento a due Vantaggi: 1. Non c e differenza tra sommare positivi e negativi! 2. Sottrazione puo essere convertita in somma!
Fondamenti di Informatica: Codifica Binaria dell Informazione 22 Esempi Somma di positivi: Somma di negativi:
Fondamenti di Informatica: Codifica Binaria dell Informazione 23 Somma e sottrazione in complemento a due Somma di positivo e negativo CARRY=1
Overflow Fondamenti di Informatica: Codifica Binaria dell Informazione 24 Si puo verificare solo se i due operandi hanno lo stesso segno CARRY=1 Segno risultato diverso da segno comune ai 2 operandi: OVERFLOW! CARRY=0 Segno risultato diverso da segno comune ai 2 operandi: OVERFLOW!
Fondamenti di Informatica: Codifica Binaria dell Informazione 25 Rappresentazione Numeri Reali Come e possibile rappresentare i numeri reali? Problemi: - Contenere spazio - Approssimazione valori - Coprire un ampio intervallo di valori Alcuni numeri richiedono infinite cifre. Es: - Il numero e, base del logaritmo naturale: e = 2.7182... - Rappresentazione Approssimata
Fondamenti di Informatica: Codifica Binaria dell Informazione 26 Rappresentazione di reali in virgola fissa Metodo piu semplice: affianchiamo un intero e un frazionario Problema: Non disponiamo di un simbolo per rappresentare il PUNTO DECIMALE Soluzione: fissiamo a priori il numero di bit disponibili per la parte intera e il numero di bit disponibili per la parte frazionaria
Fondamenti di Informatica: Codifica Binaria dell Informazione 27 Esempio Supponiamo di avere a disposizione 8 bit. Decidiamo di usare 5 bit per la parte intera e 3 per la parte frazionaria: Interpretato come intero: XXXXX.XXX Interpretato come reale (5-3): NOTARE: Il valore reale e uguale all intero diviso per dipende dalla posizione della virgola fissa): (fattore che
Fondamenti di Informatica: Codifica Binaria dell Informazione 28 Virgola fissa - Svantaggi Intervallo dei valori rappresentabili limitato Problemi di approssimazione
Fondamenti di Informatica: Codifica Binaria dell Informazione 29 Rappresentazione in virgola mobile Anche detto FLOATING POINT I valori sono rappresentati in notazione esponenziale: - - = parte frazionaria = parte esponenziale Esempio: E sufficiente memorizzare, in una base, i valori 24 e 21 La base uguale alla base della notazione esponenziale. usata per memorizzare questi valori non e necessariamente
Fondamenti di Informatica: Codifica Binaria dell Informazione 30 Rappresentazione in virgola mobile VANTAGGI - Range di valori rappresentati - Distribuzione dei valori rappresentati consente approssimazione migliore Provare a rappresentare in virgola fissa i valori e!
Fondamenti di Informatica: Codifica Binaria dell Informazione 31 Caratteristica e Mantissa La CELLA DI MEMORIA e suddivisa in parti: 1. Parte frazionaria: MANTISSA 2. Esponente: CARATTERISTICA 3. BIT DI SEGNO per l esponente 4. BIT DI SEGNO per la mantissa
Fondamenti di Informatica: Codifica Binaria dell Informazione 32 Rappresentazione in virgola mobile - Esempi Esempio 1: Rappresentare il valore -123.45 in virgola mobile, usando Soluzione: Dato che, scrivo edin base 10 Bit segno mantissa = 1, Bit segno esponente = 0
Fondamenti di Informatica: Codifica Binaria dell Informazione 33 Rappresentazione in virgola mobile - Esempi Esempio 2: A che valore decimale corrisponde il seguente valore in virgola mobile ( ): (notare che, Segno mantissa=1, Segno esponente=1 ë sono in base 2, poiche )? Soluzione:
Fondamenti di Informatica: Codifica Binaria dell Informazione 34 Rappresentazione in virgola mobile - Esempi Esempio 3: A che valore decimale corrisponde il seguente valore in virgola mobile ( ):, Segno mantissa=1, Segno esponente=1? Soluzione: Notare che poiche ë sono dati in base 2 ( ) e che -3 e esponente di 10,
Fondamenti di Informatica: Codifica Binaria dell Informazione 35 Rappresentazione di caratteri L utente inserisce dati tramite tastiera: numeri, lettere, simboli Il calcolatore memorizza solo numeri binari. Come memorizzo i caratteri? TABELLA ASCII (American Standard Code for Information Interchange): ad ogni valore numerico associo un carattere Utilizza 8 bit: caratteri diversi Eventuale utilizzo del bit di parita
Fondamenti di Informatica: Codifica Binaria dell Informazione 36 Memorizzazione di caratteri Tipi di carattere contenuti nella tabella ASCII: Caratteri alfanumerici Cifre 0,..., 9 Lettere maiuscole A,..., Z e minuscole a,..., z Segni: caratteri di punteggiatura, operatori aritmetici, ecc. Caratteri di comando: Carriage Return, Line Feed, Form Feed, ecc.
Fondamenti di Informatica: Codifica Binaria dell Informazione 37 Memorizzazione immagini Come memorizzo un immagine in un calcolatore? DIGITALIZZAZIONE L immagine e suddivisa in punti: PIXEL Ogni punto e codificato con un numero che corrisponde a un particolare colore. In generale, potenze di 2! Informazioni necessarie per codificare l immagine: 1. Dimensioni (es. 640x480, 1024x768, ecc.) 2. Risoluzione (misurata in dpi : dot per inch) 3. Numero di colori (o sfumature)