Rappresentazione della informazione

Documenti analoghi
Codifica Binaria. Problema della rappresentazione. Danilo Ardagna Politecnico di Milano 21/5/2012

Codifica Binaria. Danilo Ardagna Politecnico di Milano 29/5/2012

Rappresentazione dell informazione

Codifica dell informazione

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Conversione binario-ottale/esadecimale. Conversione binario-ottale/esadecimale. Rappresentazione di Numeri Interi Positivi (numeri naturali)

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Notazione posizionale. Codifica binaria. Rappresentazioni medianti basi diverse. Multipli del byte

Lezione 2. Rappresentazione dell informazione

Sistemi di Elaborazione delle Informazioni

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

La codifica binaria. Informatica B. Daniele Loiacono

Lezione 2. Rappresentazione dell informazione

La codifica binaria. Sommario

1-Rappresentazione dell informazione

con un insieme limitato di simboli (detto alfabeto A) in modo non ambiguo (algoritmi di traduzione tra codifiche)

Aritmetica dei Calcolatori Elettronici

Rappresentazione dell informazione

Codifica di informazioni numeriche

Rappresentazione dell informazione

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Argomenti trattati: Rappresentazione dell informazione. Proprietà di una codifica: Codifica: Teoria generale

Sistemi di Numerazione Binaria

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Codifica binaria. Rappresentazioni medianti basi diverse

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Lezione 2. Rappresentazione dell informazione

La codifica. dell informazione

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

UD 1.2e: La codifica Digitale dei Numeri CODIFICA DIGITALE DEI NUMERI

Modulo 1: Le I.C.T. UD 1.2e: La codifica Digitale dei Numeri

La codifica binaria. Informatica B. Daniele Loiacono

Rappresentazione dell informazione

Esercitazioni - Informatica A

Architetture dei calcolatori e delle reti. Lezione 2

Lezione 2. Rappresentazione dell informazione

N= a i b i. Numeri e numerali. Sistemi di Numerazione Binaria. Sistemi posizionali. Numeri a precisione finita

Codifica dell Informazione per il Calcolo Scientifico

Numerazione Simbolica

Lezione 3. I numeri relativi

Codifica dell informazione numerica. Matteo Re, Nicola Basilico,

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore. Rappresentazione dei numeri

Somma di numeri binari

Codifica binaria dell Informazione Aritmetica del Calcolatore Algebra di Boole e cenni di Logica

Sistemi di Numerazione Binaria

Sistemi di Numerazione Binaria a i b i. a m a m-1... a 0. a -1 a a -k

Rappresentazione binaria

La codifica. dell informazione. (continua) Codifica dei numeri. Codifica dei numeri. Sono stati pertanto studiati codici alternativi per

La codifica. dell informazione. Codifica dei numeri. (continua) Codifica dei numeri. Codifica dei numeri: il sistema decimale

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Sistemi di Numerazione Binaria

Informatica e Laboratorio di Programmazione Sistema Binario Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Informatica di Base - 6 c.f.u.

Introduzione. Elementi di Informatica. Sistemi di Numerazione Addizionali. Sistemi di Numerazione. Sistemi di Numerazione Romano

Esercitazioni su rappresentazione dei numeri e aritmetica. Interi unsigned in base 2

Rappresentazione binaria

Lezione 1. Rappresentazione dei numeri. Aritmetica dei calcolatori. Rappresentazione dei numeri naturali in base 2

Rappresentazione dell informazione

Rappresentazione dell'informazione

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Codifica dell informazione numerica

Rappresentazione dell informazione

Rappresentazione di dati: numerazione binaria. Appunti per la cl. 3 Di A cura del prof. Ing. Mario Catalano

Rappresentazione dell' informazione. Cenni, necessari per capire le caratteristiche dei tipi di dato e delle limitazioni dell'aritmetica del computer

Lezione 2. Rappresentazione dell informazione

Rappresentazione dell Informazione

La codifica. dell informazione

Rappresentazione dei numeri interi in un calcolatore

Codifica binaria dell Informazione Aritmetica del Calcolatore Algebra di Boole e cenni di Logica

La rappresentazione dei dati

Codifica dell informazione

Sistemi di numerazione posizionali

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Rappresentazione dei numeri

La Rappresentazione dell Informazione

Lezione 2. Rappresentazione dell informazione

Rappresentazione dell informazione

Esercitazione del 05/03/ Soluzioni

Rappresentazione binaria

DIPARTIMENTO DI MATEMATICA E INFORMATICA SISTEMI OPERATIVI. Anno Accademico 2017/2018. Docente: ing. Salvatore Sorce

Codifica. Rappresentazione di numeri in memoria

Argomenti trattati: Rappresentazione dell informazione. Proprietà di una codifica: Codifica: Teoria generale

Corso di Architettura degli Elaboratori

Abilità Informatiche e Telematiche

Precisazione sui tipi in ANSi C

Fondamenti di informatica

CODIFICA DELLE INFORMAZIONI. Prof. Marco Camurri

Aritmetica dei Calcolatori

CdL in Medicina Veterinaria - STPA AA

Informatica, Informazione e Telecomunicazioni. La codifica dell informazione. Supporto e informazione. Il concetto di informazione

Interi positivi e negativi

Informatica, Informazione e Telecomunicazioni. La codifica dell informazione. Il concetto di informazione. Supporto e informazione

Codifica binaria: - numeri interi relativi -

Rappresentazione della informazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore

Transcript:

INFORMATICA B Ingegneria Elettrica Rappresentazione della informazione

Problema della rappresentazione Come vengono gestite le informazioni in un calcolatore? Numeri interi Numeri con la virgola Caratteri Immagini... 2

Rappresentazione unaria La rappresentazione unaria è sicuramente la codifica (basata su un sistema additivo) più semplice dei numeri La barretta I rappresenta il numero 1 La sequenza IIIIII denota il numero 6 e così via La dimensione della rappresentazione cresce in modo lineare con il numero da rappresentare Impraticabile per gestire numeri grandi 3

I numeri romani È un altro sistema additivo Minimizza la dimensione della rappresentazione rispetto alla rappresentazione unaria: simboli per multipli di 5 Alfabeto: {I V X L C D M} Numeri naturali: combinazioni di tali simboli. Per evitare di usare nuovi simboli 4 viene codificato come 5-1 scritto IV ecc. Problemi con numeri non multipli di 5 e numeri grandi 19 rappresentato da X IX 1281 rappresentato da MCCLXXX I 50.000 rappresentato da una sequenza di 50 M 4

Rappresentazione decimale Codifica posizionale basata sul numero 10 Alfabeto: {0 1 2 3 4 5 6 7 8 9} I numeri si leggono da sinistra a destra e sono associati a potenze di 10 (mille, diecimila, ecc.) Es. la sequenza 5312 rappresenta il numero 5 x 10 3 + 3 x 10 2 + 1 x 10 1 + 2 x 10 0 La notazione posizionale può essere utilizzata in qualsiasi altra base 5

Codifica BINARIA Usata dal calcolatore per tutte le informazioni Alfabeto: { 0, 1 } BIT ( BInary digit ): unità elementare di informazione Facile da implementare: dispositivi che assumono due stati Acceso/spento Due valori di tensione: V dd e V gnd Numeri binari naturali: la sequenza di n bit b i (cifre binarie): b n - 1 b n- 2 b 0, essendo b i {0, 1} rappresenta in base 2 il valore: b n - 1 2 n - 1 + b n- 2 2 n- 2 + + b 0 20 6

Numeri binari naturali Con n bit (n 1) codifichiamo 2 n numeri nell intervallo [0; 2 n - 1] Con 1 Byte (cioè una sequenza di 8 bit): 00000000 bin = 0 dec 00001000 bin = 1 2 3 = 8 dec 00101011 bin = 1 2 5 + 1 2 3 + 1 2 1 + 1 2 0 = 43 dec 11111111 bin = Σ n = 0,1,2,3,4,5,6,7 1 2 n = 255 dec Conversione bin- >dec e dec- >bin bin- >dec - Σ i 2 i : 11101 bin = (2 4 +2 3 +2 2 +2 0 )= 29 dec dec- >bin - metodo dei resti 7

Conversione da decimale a binario naturale Si calcolano i resti delle divisioni per due: 1. Decidere se il numero sia pari (resto 0) oppure dispari (resto 1), e annotare il resto 2. Dividere per 2 il numero (trascurando il resto) 3. Ripartire dal punto 1. fino a ottenere 0 come risultato della divisione Questo approccio è chiamato metodo dei resti 19 : 2 1 9 : 2 1 4 : 2 0 2 : 2 0 1 0 : 2 1 Cifra meno significativa Cifra più significativa 19 dec =10011 bin 8

Conversione da decimale a binario naturale 29 : 2 = 14 (1) 14 : 2 = 7 (0) 7 : 2 = 3 (1) 3 : 2 = 1 (1) 1 : 2 = 0 (1) 76 : 2 = 38 (0) 38 : 2 = 19 (0) 19 : 2 = 9 (1) 9 : 2 = 4 (1) 4 : 2 = 2 (0) 2 : 2 = 1 (0) 1 : 2 = 0 (1) 29 dec = 11101 bin Del resto 76 = 19x4 = 1001100 Per raddoppiare, in base due, si aggiunge uno zero in coda, così come si fa in base dieci per decuplicare 76 dec = 1001100 bin 9

Conversioni rapide bin à dec In binario si definisce una notazione abbreviata, sulla falsariga del sistema metrico- decimale: K = 2 10 = 1.024 10 3 (Kilo) M = 2 20 = 1.048.576 10 6 (Mega) G = 2 30 = 1.073.741.824 10 9 (Giga) T = 2 40 = 1.099.511.627.776 10 12 (Tera) È curioso (benché non sia casuale) come K, M, G e T in base 2 abbiano valori molto prossimi ai corrispondenti simboli del sistema metrico decimale, tipico delle scienze fisiche e dell ingegneria L errore risulta < 10 % 10

Conversioni rapide bin à dec: esempi 2 24 2 35 = 2 4+20 = 16 M, leggi 16 milioni = 2 5+30 = 32 G, leggi 32 miliardi 2 48 = 2 8+40 = 256 T, leggi 256 bilioni, o anche = 2 8+10+30 = 256 K G, leggi 256 mila miliardi 2 32 = 2 2+30 = 4 G 11

Lunghezza della rappresentazione binario naturale Quanti bit servono almeno per rappresentare in binario naturale un dato valore espresso in notazione decimale? # di bit = log 2 (valore+1) Esempio: log 2 (74 dec +1) = 6,2 = 7 bit In generale: log B (valore+1) = # di cifre per rappresentare il valore in base B Esempio: log 10 (74 dec +1) = 1,8 = 2 cifre 12

Aumento e riduzione dei bit in binario naturale Aumento dei bit Premettendo in modo progressivo un bit 0 a sinistra, il valore del numero non muta 4 dec = 100 bin = 0100 bin = 00100 bin = 000000000100 bin 5 dec = 101 bin = 0101 bin = 00101 bin = 000000000101 bin Riduzione dei bit Cancellando in modo progressivo un bit 0 a sinistra, il valore del numero non muta, ma bisogna arrestarsi quando si trova un bit 1! 7 dec = 00111 bin = 0111 bin = 111 bin STOP! 2 dec = 00010 bin = 0010 bin = 010 bin = 10 bin STOP! 13

Operazioni con numeri binari naturali Algoritmo di addizione a propagazione dei riporti È l algoritmo decimale elementare, adattato alla base 2 Addizione naturale (a 8 bit): Pesi 7 6 5 4 3 2 1 0 Riporto 1 1 1 Addendo 1 0 1 0 0 1 1 0 1 + 77 dec Addendo 2 1 0 0 1 1 1 0 0 = 156 dec Somma 1 1 1 0 1 0 0 1 233 dec L operazione di sottrazione è adattata allo stesso modo Il secondo operando deve essere minore del primo 14

Operazioni con numeri binari naturali L overflow si verifica quando il risultato di un operazione non può essere rappresentato sul numero di bit a disposizione Nella somma tra numeri naturali l overflow si verifica quando la somma dei bit più significativi genera un riporto Pesi 7 6 5 4 3 2 1 0 Riporto perduto Riporto 1 1 1 1 1 1 Addendo 1 0 1 1 1 1 1 0 1 + 125 dec Addendo 2 1 0 0 1 1 1 0 0 = 156 dec Somma 0 0 0 1 1 0 0 1 25 dec! overflow risultato errato! 15

Numeri interi relativi in modulo e segno Necessità: nel computer il segno di un numero deve essere rappresentato in qualche modo con cifre binarie! Numeri binari interi relativi in modulo e segno Il primo bit a sinistra rappresenta il segno del numero (bit di segno), i bit rimanenti rappresentano il valore 0 per il segno positivo 1 per il segno negativo Con n bit (n 2) codifichiamo 2 n numeri nell intervallo (- 2 n- 1, 2 n- 1 ) Esempi con n = 9 (8 bit + un bit per il segno) 000000000 m&s = + 0 = 0 dec 000001000 m&s = + 1 2 3 = 8 dec 100001000 m&s = - 1 2 3 = - 8 dec e così via 16

Osservazioni sulla rappresentazione m&s Il bit di segno è applicato al numero rappresentato, ma non fa propriamente parte del numero in quanto tale Il bit di segno non ha significato numerico Distaccando il bit di segno, i bit rimanenti rappresentano il valore assoluto del numero (in binario naturale) L estensione del numero di bit della codifica si effettua aggiungendo/togliendo zeri dalla seconda cifra da sinistra (con le stesse regole dei numeri binari naturali) Inefficiente: due codifiche per lo 0 (+0 e - 0) Complessità di implementazione (sottrazione) 17

Lunghezza della rappresentazione m&s Quanti bit servono almeno per rappresentare in binario modulo e segno un dato valore espresso in notazione decimale? #bit = log 2 (valore+1) +1 Esempio: log 2 (74 dec +1) +1 = 6,2 +1 = 8 bit 18

Operazioni con numeri binari m&s Somma di due numeri con stesso segno Si sommano i valori assoluti dei due numeri (sono due numeri naturali) Si aggiunge al risultato il segno dei due operandi Somma di due numeri con segno discorde Si effettua la sottrazione tra il valore assoluto più grande e quello più piccolo (sono due numeri naturali) Si aggiunge al risultato il segno dell operando con valore assoluto maggiore La sottrazione funziona in modo simile Si inverte il segno del secondo operando Si esegue la somma secondo le regole mostrate sopra 19

Rappresentazione binaria in complemento a 2 (C2) Numeri interi relativi in complemento a 2: il C 2 è un sistema binario, ma il primo bit (quello a sinistra, il più significativo) ha peso negativo, mentre tutti gli altri bit hanno peso positivo La sequenza di bit: b n - 1 b n- 2 b 0 rappresenta in C 2 il valore: b n - 1 (- 2 n- 1 )+ b n- 2 2 n- 2 + + b 0 20 Il bit più a sinistra è ancora chiamato bit di segno 20

Esempi di numeri a 3 Bit in C2 000 C2 = 0 2 2 + 0 2 1 + 0 2 0 = 0 dec 001 C2 = 0 2 2 + 0 2 1 + 1 2 0 = 1 dec 010 C2 = 0 2 2 + 1 2 1 + 0 2 0 = 2 dec 011 C2 = 0 2 2 + 1 2 1 + 1 2 0 = 2+1 = 3 dec 100 C2 = 1 2 2 + 0 2 1 + 0 2 0 = - 4 dec 101 C2 = 1 2 2 + 0 2 1 + 1 2 0 = - 4+1 = - 3 dec 110 C2 = 1 2 2 + 1 2 1 + 0 2 0 = - 4+2 = - 2 dec 111 C2 = 1 2 2 + 1 2 1 + 1 2 0 = - 4+2+1 = - 1 dec N.B.: in base al bit di segno il numero zero è considerato positivo 21

Confronto tra interi relativi in m&s e in C2 Se si utilizza 1 Byte: da 128 a 127 dec. 127 m&s 01111111 C 2 01111111 126 01111110 01111110......... 2 00000010 00000010 1 00000001 00000001 +0 00000000 00000000-0 10000000 - -1 10000001 11111111-2 10000010 11111110......... -126 11111110 10000010-127 11111111 10000001-128 - 10000000 L intervallo rappresentato dal complemento a 2 è asimmetrico 22

Invertire un numero in C2 L inverso additivo (o opposto) di un numero rappresentato in C 2 si ottiene: 1. Invertendo (negando) ogni bit del numero (0- >1 e 1- >0) 2. Sommando 1 alla posizione meno significativa Esempio: 01011 C2 = 1 2 3 +1 2 1 +1 2 0 = 8+2+1 = 11 dec 10100 + 1 = 10101 C2 = - 1 2 4 +1 2 2 +1 2 0 = - 16+4+1 = - 11 dec Con due applicazioni dell algoritmo si riottiene il numero iniziale ( A) = A Lo zero in C 2 è (correttamente) opposto di se stesso ( 0 = 0 ) 23

Conversione da decimale a C2 (usando il minimo numero di bit) Se D dec 0: 1. Convertire D dec in binario naturale 2. Aggiungere il bit 0 in testa alla sequenza di bit ottenuta Esempio: 154 dec 10011010 bin 010011010 C2 Se D dec < 0: 1. Trascurare il segno e converti D dec in binario naturale 2. Aggiungere il bit 0 in testa alla sequenza di bit ottenuta 3. Calcolare l opposto del numero così ottenuto, secondo la procedura di inversione in C 2 Esempio: - 154 dec 154 dec 10011010 bin 010011010 bin 101100101 + 1 101100110 C2 Con n bit (n 2) codifichiamo 2 n numeri nell intervallo [- 2 n- 1, 2 n- 1 ) Occorrono 9 bit sia per 154 dec che per - 154 dec 24

Osservazioni sul C2 Il segno è incorporato nel numero rappresentato in C 2, non è semplicemente applicato (come in m&s) Si può eseguire l estensione del numero di bit della codifica replicando il bit più a sinistra La riduzione si può effettuare fino a che non si trova una sequenza 10 o 01 poiché il primo bit rappresenterà il segno Il bit più significativo rivela il segno: 0 per numero positivo, 1 per numero negativo (il numero zero è considerato positivo), ma Se il numero è negativo, NON si può distaccare il bit più significativo e dire che i bit rimanenti rappresentano il valore assoluto del numero Implementazione hardware della sottrazione è semplificata 25

Lunghezza della rappresentazione C2 Quanti bit servono almeno per rappresentare in binario complemento a 2 un dato valore espresso in notazione decimale? Se valore 0 allora #bit = log 2 (valore+1) +1 Se valore < 0 allora #bit = log 2 (abs(valore)) +1 Esempio: log 2 74 dec +1 = 6,2 +1 = 8 bit 26

Operazioni con numeri in C2 L addizione di numeri in complemento a 2 è identico a quello dei numeri binari naturali (il bit di segno è elaborato come gli altri bit) Somma di due numeri a 8 bit: Pesi 7 6 5 4 3 2 1 0 Riporto 1 1 1 Addendo 1 0 1 0 0 1 1 0 1 + 77 dec Addendo 2 1 0 0 1 1 1 0 0 = 100 dec Somma 1 1 1 0 1 0 0 1 23dec La sottrazione viene eseguita con l operazione di somma: A B = A + ( B) 27

Operazioni con numeri in C2 nessun riporto perduto overflow Pesi 7 6 5 4 3 2 1 0 Riporto 1 1 1 1 Addendo 1 0 1 0 0 1 1 0 1 + 77 dec Addendo 2 0 1 0 1 1 1 0 0 = 92 dec Somma 1 0 1 0 1 0 0 1 87dec! Overflow: risultato negativo! risultato errato! 28

Rilevare l overflow in C2 Se gli addendi sono tra loro discordi (di segno diverso) non si verifica mai Se gli addendi sono tra loro concordi, si verifica se e solo se il risultato è discorde addendi positivi ma risultato negativo addendi negativi ma risultato positivo 29

Riporto e overflow in C2 Si ha overflow quando il risultato corretto dell addizione eccede il potere di rappresentazione dei bit a disposizione La definizione di overflow non cambia Nelle operazioni su numeri C2 l overflow non ha alcuna relazione con il riporto Si può avere overflow senza riporto perduto Capita quando da due addendi positivi otteniamo un risultato negativo, come nell esempio precedente Si può avere un riporto perduto senza overflow Può essere un innocuo effetto collaterale Capita quando due addendi discordi generano un risultato positivo (si provi a sommare +12 e - 7) 30

Rappresentazione ottale ed esadecimale Ottale o in base otto (oct): Si usano solo le cifre 0-7 534 oct = 5 oct 8 dec 2 + 3 oct 8 dec 1 + 4 oct 8 dec0 = 348 dec Esadecimale o in base sedici (hex): Si usano le cifre 0-9 e le lettere A- F per i valori 10-15 B7F hex = B hex 16 dec 2 + 7 hex 16 dec 1 + F hex 16 dec0 = = 11 dec 16 dec 2 + 7 dec 16 dec 1 + 15 dec 16 dec0 = 2943 dec Entrambe queste basi sono facili da convertire in binario, e viceversa Sono due rappresentazioni comode per rappresentare in modo più compatto dati binari 31

Conversioni bin à hex 1. Si scompone da destra verso sinistra il numero binario in quadruplette (aggiungendo eventualmente 0 a sinistra per ottenere un numero di cifre multiplo di 4) 2. Si converte ciascun gruppo di cifre nell equivalente numero esadecimale Es: 010011110101011011 bin = = 0001 bin 0011 bin 1101 bin 0101 bin 1011 bin = = 1 hex 3 hex D hex 5 hex B hex = = 13D5B hex La conversione bin- >oct funziona allo stesso modo, scomponendo in triplette 32

Conversioni hex à bin Ciascuna cifra esadecimale è convertita nell equivalente cifra binaria ed le stringhe binarie risultanti vengono concatenate Esempio: A7B40C hex = A hex 7 hex B hex 4 hex 0 hex C hex = = 1010 bin 0111 bin 1011 bin 0100 bin 0000 bin 1100 bin = = 101001111011010000001100 bin La conversione oct- >bin funziona allo stesso modo 33

Numeri frazionari I numeri frazionari compresi tra 0 e 1 possono essere rappresentati con la sequenza di bit 0,b - 1 b - 2 b - n essendo b i {0, 1} che rappresenta in base 2 il valore: b - 1 2-1 + b - 2 2-2 + + b - n 2 - n Esempio: 0,1011 bin (in binario) 0,1011 bin = 1 2-1 + 0 2-2 + 1 2-3 + 1 2-4 = 1/2 + 1/8 + 1/16 = = 0,5 + 0,125 + 0,0625 = 0,6875 dec 34

Numeri frazionari Algoritmo per convertire un numero n frazionario in base 10 in base 2: 1. Il risultato in base 2 è inizializzato a 0, 2. Moltiplicare n per 2 3. La parte intera del risultato viene aggiunta come cifra meno significativa del numero in base 2 4. Si torna al passo 2 considerando la parte frazionaria del risultato al posto di n Terminazione dell algoritmo Soltanto i numeri del tipo m/2 n possono essere rappresentati con un numero finito di cifre In alternativa ci si ferma quando il numero di cifre calcolate costituisce un approssimazione sufficiente 35

Numeri frazionari Esempio: convertire (0.587) 10 in base 2 0.587 2 = 1.174 parte intera = 1 0.174 2 = 0.348 parte intera = 0 0.348 2 = 0.696 parte intera = 0 0.696 2 = 1.392 parte intera = 1 0.392 2 = 0.784 parte intera = 0 0.784 2 = 1.568 parte intera = 1... Il risultato (approssimato) è 0,100101 36

Numeri reali in virgola fissa Necessità: nel computer la virgola deve essere rappresentata in qualche modo con cifre binarie! Si può rappresentare un numero reale in virgola fissa (o fixed point) concatenando la rappresentazione della parte intera (in modulo e segno) con la parte frazionaria: 19,6875 dec = 10011,1011 virgola fissa poiché si ha: 19 dec = 10011 bin e 0,6875 dec = 0,1011 bin La rappresentazione utilizza un numero fisso di bit per rappresentare la parte intera ed per quella frazionaria Nell esempio 5 bit per la parte intera, 4 bit per quella frazionaria 37

Numeri reali in virgola fissa La sequenza di bit rappresentante un numero frazionario consta di due parti di lunghezza prefissata Il numero di bit a sinistra e a destra della virgola è stabilito a priori (alcuni bit potrebbero restare nulli) È un sistema di rappresentazione semplice, ma poco flessibile, e può condurre a sprechi di bit Per rappresentare in virgola fissa numeri molto grandi (oppure molto precisi) occorrono molti bit 38

Numeri reali in virgola mobile La rappresentazione in virgola mobile (o floating point) è usata spesso in base 10 (si chiama notazione scientifica): 1,37 10 7 notazione scientifica per intendere 13.700.000 dec La rappresentazione binaria in virgola mobile si basa sulla relazione R virgola mobile = M 2 E 39

Numeri reali in virgola mobile I numeri in virgola mobile sono rappresentati comunemente con lo standard IEEE 754 (singola precisione su 32 bit o doppia precisione su 64 bit) Segno Esponente Mantissa Segno: 1 per numero negativo, 0 per numero positivo All esponente viene sommato 127 (es: 2 1 - > esponente=127+1) Esponenti<127 rappresentano numeri nell intervallo [0;1) Esponente>127 rappresenta i numeri maggiori di 1 La mantissa è normalizzata cioè la virgola viene spostata per ottenere la forma 1,X. Perciò si salva solo X Tranne quando l esponente è 0; in tal caso la mantissa è 0,X 40

Numeri reali in virgola mobile Esponente in (0;255) - > v 10 = (- 1) segno x 1,mantissa x 2 (esponente- 127) Esponente=0 - > v 10 = (- 1) segno x 0,mantissa x 2 (- 126) Valori particolari: Esponente=255 e mantissa!=0 - > valore NaN Esponente=255, mantissa=0 e segno=0 - > valore +Inf Esponente=255, mantissa=0 e segno=1 - > valore Inf Esponente=0, mantissa=0 e segno=0 - > valore +0 Esponente=0, mantissa=0 e segno=1 - > valore 0 41

Caratteri I caratteri sono rappresentati con una codifica numerica La più comune è la codifica ASCII (American Standard Code for Information Interchange) che utilizza 8bit 42

Immagini Le immagini sono rappresentate come una matrice di pixel Pixel Ad ogni pixel è associata una codifica binaria del colore 43

Immagini Assegnando un bit ad ogni pixel si possono rappresentare solo immagini in bianco e nero Per rappresentare immagini a diversi livelli di grigio o a colori: a ogni pixel è associata una sequenza di bit Nei monitor è utilizzato lo standard RGB Ogni colore è ottenuto mescolando tre diverse gradazioni dei colori primari (rosso verde e blu) Per ogni pixel bisogna specificare quali sono i livelli dei tre colori Risoluzione: numero di pixel presenti sullo schermo (800 600, 1024 768, 1600 1200) 44

Nei computer La rappresentazione delle informazioni dipende dall architettura del computer e dal compilatore utilizzato Nel linguaggio C compilato per una moderna architettura: int: rappresentati in C2 unsigned int: rappresentati in binario naturale short int, int e long int : esistono 3 possibili dimensioni per la rappresentazione di un intero sizeof(short int) <= sizeof(int) <= sizeof(long int) in genere int è a 32 bit float: numeri reali in virgola mobile a singola precisione (32 bit) double: numeri reali in virgola mobile a doppia precisione (64 bit) char: ASCII (8 bit) L operatore sizeof(tipo_di_dato) restituisce la dimensione in numero di byte del tipo di dato o della variabile specificati 45

Calcolo dello spazio di memoria dati richiesto #include <stdio.h> void main() { int i, j; char c; float f; printf("hello World"); } Il programma richiede uno spazio di memoria per i dati pari a 2 byte per i 2 byte per j 1 byte per c 4 byte per f Per un totale di 9 byte Assumendo che una variabile int occupi 2 byte 46