DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.

Slides:



Advertisements
Presentazioni simili
LE FUNZIONI REALI DI VARIABILE REALE
Advertisements

Rappresentazioni numeriche
1 I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI.
Informatica Generale Susanna Pelagatti
Rappresentazione di Numeri Reali
Codifica dei Dati Idea: vogliamo rappresentare dati eterogenei utilizzando un linguaggio che l’elaboratore puo’ facilmente manipolare Essenzialmente vogliamo.
Sistemi di numerazione e codici
1 © 1999 Roberto Bisiani Rappresentazione delle informazioni n Occorre un codice n Legato alla tecnologia usata Robustezza Semplicita Economicita.
esponente del radicando
A.S.E.7.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 7 Errore di rappresentazioneErrore di rappresentazione Fattore di scalaFattore di scala Rappresentazione.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Rappresentazione dei numeri reali
Codifica binaria Rappresentazione di numeri
Rappresentazione di numeri relativi (interi con segno)
Usare rappresentazioni di lunghezza fissa porta ad avere valori non rappresentabili: Overflow indica un errore nella rappresentazione del risultato in.
Conversione binario - ottale/esadecimale
Conversione binario - ottale/esadecimale
Rappresentazione di Numeri Reali
1 © 1999 Roberto Bisiani Rappresentazione delle informazioni n Occorre un codice n Legato alla tecnologia usata Robustezza Semplicita Economicita.
Laboratorio di Metodi Numerici a.a. 2008/2009 Prof. Maria Lucia Sampoli.
ALGEBRA.
ARITMETICA BINARIA.
I numeri interi relativi
Richiami di matematica DALLE POTENZE ALLA NOTAZIONE SCIENTIFICA
NUMERI RELATIVI.
Process synchronization
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Rappresentazione dell’informazione nel calcolatore.
Uso di tabelle logaritmiche

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 11.
Rappresentazione della Informazione
Rappresentazioni numeriche. Introduzione Un calcolatore elettronico dispone di uno spazio finito per memorizzare le cifre che esprimono un valore numerico.
Rappresentazione dell’informazione
Rappresentazioni a lunghezza fissa: problemi
A.S.E.14.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 14 Rappresentazione esponenzialeRappresentazione esponenziale Virgola mobileVirgola mobile Operazioni.
Rappresentazione in virgola mobile (floating-point) Permette di rappresentare numeri con ordini di grandezza molto differenti utilizzando per la rappresentazione.
Fondamenti di Informatica
La Rappresentazione dell’Informazione
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 © 1999 Roberto Bisiani Overflow n Overflow  traboccamento Si verifica se il risultato di un’operazione non puo’ essere rappresentato con il numero di.
Rappresentazione dell'informazione
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
La codifica dei numeri.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Conversione binario-ottale/esadecimale
Rappresentazione degli interi
Istruzioni per l’uso…….
Le quattro operazioni.
I RADICALI.
Codifica binaria dell’informazione
Rappresentazione dei numeri
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 11.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 24.
I sistemi di numerazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione pre 1ma prova in itinere Marco D. Santambrogio – Ver. aggiornata.
32 = 9 x2 = 9 x = 3 32 = 9 √9 = 3 L’estrazione di radice
La numerazione ottale. Il sistema di numerazione ottale ha ampio utilizzo in informatica E’ un sistema di numerazione posizionale La base è 8 Il sistema.
DEFINIZIONE. La potenza di un numero è il prodotto di tanti fattori uguali a quel numero detto base, quanti ne indica l’esponente. La potenza di un numero.
I numeri naturali, interi, razionali e reali. I numeri naturali: N I numeri naturali sono i primi numeri che impariamo. Quando contiamo, partiamo dal.
Definizioni Rappresentazione Operazioni Espressioni Esercizi
Appunti su formati numerici. Tipi numerici Il C dispone di due tipi numerici: tipi interi e tipi reali; I tipi reali sono anche detti floating, ovvero.
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
Le frazioni A partire da N vogliamo costruire un nuovo insieme numerico nel quale sia sempre possibile eseguire la divisione. Per fare ciò dobbiamo introdurre.
IL NUMERO …qualche idea…..
Process synchronization
Transcript della presentazione:

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2016

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Complemento a due Numeri in virgola 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Rappresentazione dei numeri In realtà, una semplice codifica binaria come quella discussa fino ad ora non è sufficiente, per due motivi:  Numeri negativi  Numeri con la virgola Per questi numeri vengono utilizzate delle rappresentazioni differenti  Per esempio “complemento a due” per rappresentare i numeri negativi 3

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stampa caratteri Si scriva un programma in C che stampi a video tutti i caratteri  Nota: si ricorda che i caratteri sono un insieme di 256 elementi 4

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stampa caratteri 5

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stampa caratteri: int8_t 6

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri negativi Si può pensare di usare un bit per il segno  “0” identifica “+”  “1” identifica “-” Gli altri bit vengono usati per codificare il valore assoluto (modulo) del numero [ , ] [0, ] 7

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri negativi - problemi Con 3 bit avremo: Problemi: Il numero 0 ha due rappresentazioni Per l’operazione di somma si deve tener conto dei segni degli addendi (+2) =(-3) (-5 ERRATO) 8

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stampa caratteri: unsigned 9

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stampa caratteri: unsigned 10

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il fattoriale… 11

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il fattoriale: codice 12

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Proviamo ad eseguirlo… 13 int sono interi con segno

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il fattoriale: unsigned int 14

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Proviamo ad eseguirlo… 15 Ora solo overflow

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri negativi: Complemento a due Il bit più significativo rappresenta il segno del numero: 0 per i numeri positivi e 1 per i numeri negativi La rappresentazione di un numero positivo si ottiene codificando il valore assoluto del numero con i bit restanti La rappresentazione di un numero negativo si ottiene in tre passi:  Si rappresenta in complemento a due il numeri positivo con lo stesso valore assoluto del numero negativo da codificare  Si invertono tutti i bit in tale rappresentazione (0  1,1  0)  Si somma uno al risultato ottenuto al passo precedente 16

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Complemento a due Esempio (con 4 bit a disposizione):  La codifica di +5 è 0101  La codifica del numero –5 avviene in tre passi: La rappresentazione in complemento a due di +5 è 0101 Invertendo tutti i bit si ottiene 1010 Sommando 1 si ottiene 1011, la rappresentazione in complemento a due di -5 17

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Complemento a due Per ottenere un numero con segno data la sua rappresentazione in complemento a due:  Se il primo bit è 0 il numero è positivo: per calcolarne il valore assoluto si esegue la conversione da binario a decimale  Se il primo bit è 1 il numero è negativo: Si ignora il primo bit Si invertono i restanti bit Si converte il numero da binario a decimale Si somma uno al numero ottenuto per ottenere il valore assoluto del numero negativo 18

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Complemento a due Esempio: 1011  Si esclude il primo bit  Invertendo 011 si ottiene 100 che è codifica di 4  Va aggiunto 1 per ottenere il valore assoluto 5  Il risultato è quindi -5 19

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Complemento a due Con 3 bit avremo: Esempi di addizione: (+2) =(-5) (-3) (+7) =(-5) (+2) Nel secondo esempio, l’overflow è ignorato 20

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE E ora.. Quanto fa 0,4 * 20? 21

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE E ora.. Quanto fa 0,4 * 20? 22

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE E ora.. Quanto fa 0,4 * 20? 23 WATWAT

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE E ora.. Quanto fa 0,4 * 20? 24

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola fissa Fino a questo punto abbiamo assunto che  Un vettore di bit rappresentasse sempre un numero intero  Eventualmente con segno Tutte le considerazioni fatte fino ad ora e tutti i metodi esposti continuano a valere se si attribuisce ai vettori di bit il significato di numeri in virgola fissa Un sistema di numerazione in virgola fissa è quello in cui:  La posizione della virgola decimale è implicita  La posizione della virgola decimale uguale in tutti i numeri La posizione della virgola equivale alla interpretazione del valore intero moltiplicato per un fattore di scala 25

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola fissa: fattore di scala Si consideri ad esempio il vettore di k+n bit (k bit per rappresentare la parte intera e n bit per rappresentare la parte frazionaria): B = b k-1... b 0,b B -n Il suo valore è dato da V(B) = b k-1 x2 k b 0 x2 0 + b -1 x b -n x2 -n Il fattore di scala che consente di passare dalla rappresentazione intera a quella a virgola fissa è pari a S n = 2 -n = 1 / 2 n Detti V I il valore intero e V VF il valore in virgola fissa di B: V VF (B) = V I (B) x S n = V I (B) x 2 -n parte frazionaria 26

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsempio Si consideri il vettore binario: B = Il suo valore in virgola fissa è: V VF (B)= = / / / 16 = 43 / 16 = Il fattore di scala da utilizzare per la conversione è: S 5 = 2 -5 = 1 / 32 = Il valore di B, considerandolo intero è: V I (B) = = = 86 Da cui, moltiplicando per il fattore di scala, si ha: V VF (B) = V I (B) x S 5 = 86 x =

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola mobile Codifica in virgola mobile per i numeri in base 10 Un numero in virgola mobile è composto da diverse parti: Si dice normalizzato un numero in cui 1  M  10 Facilmente estendibile al sistema di numerazione binario In un numero binario in virgola mobile e normalizzato  La prima cifra della mantissa è sempre 1 (1  M  2)  Tale cifra non viene rappresentata esplicitamente SegnoMantissaEsponente 28

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola mobile – Valori rappresentabili IEEE standard: Numeri floating-point in singola precisione L’esponente utilizza la codifica in eccesso 127, e cioè il valore effettivo dell’esponente è pari a (E-127)  E = 0 e M = 0 Rappresenta lo zero (pos/neg)  E = 255 e M = 0Rappresenta infinito (pos/neg)  E = 255 e M !=0NotANumber  0<E<255 (-1) s x 2 (E-127) x (1,M) (127  E  254 esp.positivi 126  E  1esp.negativi)  E = 0 e M !=0(-1) s x x (0,M) non normalizzati Standard IEEE 32 bit: intervallo rappresentato -1.M x  x  +1.M x La precisione consentita è di circa 7 cifre decimali SEM 1 bit Segno 8 bit Esponente 23 bit Mantissa 29

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola mobile: Valori rappresentabili Motivazione della rappresentazione non normalizzata  E = 0 e M !=0 (-1) s x x (0,M) non normalizzati Il valore più piccolo rappresentabile normalizzato è ± x 1,00…00 = ± 2 –126 che espresso in virgola mobile da E=1 e M = 0 rappresentazione non normalizzata E=0 e M != 0 Interpretata nel modo seguente: Valore numerico = ± 2 –126 x 0,…… Il più piccolo valore rappresentabile è ± 2 –126 x 0,00…01 = ± 2 –126 x 2 –23 = ± 2 – – –126 ? 30

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come passo da DEC a BIN? Come rappresentiamo il numero 3, in binario? 1 bit di segno 8 bit di esponente 23 bit di mantissa 31

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 3, in binario: segno La ricerca del segno è semplice  0 per indicare un segno +  1 per indicare un segno - 32

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 3, in binario: mantissa 3, è composto da 3 e 0,375  3 in binario (N>0, divido per 2) : 11  0,375 in binario (N<0, moltiplico per 2) 0,375 x 2 = 0,750 e quindi 0 e 0,750 0,750 x 2 = 1,5 e quindi 1 e 0,5 0,5 in binario? 0,5 x 2 = 1,0 e quindi 1 e 0 0 in binario?... ZERO E quindi 3, è … 33

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 3, in binario: mantissa E quindi 3, è … Ricordiamo  La prima cifra della mantissa è sempre 1 Quindi devo normalizzare!  E come si normalizza? 34

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: Normalizzazione Tutte le operazioni descritte nel seguito operano su numeri normalizzati (1 implicito prima della virgola) Se l’1 implicito manca, la normalizzazione di un numero con mantissa M ed esponente n, si esegue come segue:  Si fa scorrere verso sinistra la mantissa M fino al primo uno, compreso; sia k il numero di posizioni di tale scorrimento  Si sottrae k all’esponente n Da ricordare:  Scorrimento a sx equivale a moltiplicazione  Scorrimento a dx equivale a divisione 35

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 3, in binario: mantissa normalizzata E quindi 3, è  > x 2 1 Mantissa =

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 3, in binario: esponente Esponente (eccesso 127) =  L’uno deriva dalla normalizzazione delle mantissa: > x

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 3, in binario Come rappresentiamo il numero 3, in binario? 1 bit di segno: 0 8 bit di esponente: (128) 23 bit di mantissa: Mettiamo tutti insieme:  3, =

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Operazioni in virgola mobile Le operazioni che si possono compiere su numeri in virgola mobile sono:  Somma  Sottrazione  Moltiplicazione  Divisione  Elevamento a potenza  Estrazione di radice Inoltre sono definite le operazioni di:  Normalizzazione (già vista)  Troncamento 39

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Operazioni in virgola mobile L’esecuzione di una operazione in virgola mobile può provocare una eccezione Una eccezione è il risultato di una operazione anomala, quale, ad esempio:  Divisione per zero  Estrazione della radice quadrata di un numero negativo Le eccezioni che vengono generate dalle unità aritmetiche in virgola mobile sono:  Operazione non valida  Divisione per zero  Overflow  Underflow 40

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Userete ad esercitazione… 41

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: Somma e Sottrazione La somma o sottrazione tra numeri in virgola mobile viene eseguita secondo i seguenti passi:  Si sceglie il numero con esponente minore  Si fa scorrere la sua mantissa a destra un numero di bit pari alla differenza dei due esponenti  Si assegna all’esponente del risultato il maggiore tra gli esponenti degli operandi  Si esegue l’operazione di somma (algebrica) tra le mantisse per determinare il valore ed il segno del risultato  Si normalizza il risultato così ottenuto Non sempre quest’ultima operazione è necessaria Attenzione!!! Il riporto si può propagare anche dopo la posizione della virgola 42

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: Moltiplicazione La moltiplicazione tra numeri in virgola mobile viene eseguita secondo i seguenti passi:  Si sommano gli esponenti e si sottrae 127  Si calcola il risultato della moltiplicazione delle mantisse  Si determina il segno del risultato  Si normalizza il risultato così ottenuto Non sempre quest’ultima operazione è necessaria La sottrazione di 127 dalla somma degli esponenti è necessaria in quanto sono rappresentati in eccesso 127 E a,127 = E a E b,127 = E b E axb,127 = E axb = (E a + 127) + (E b + 127)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: Divisione La divisione tra numeri in virgola mobile viene eseguita secondo i seguenti passi:  Si sottraggono gli esponenti e si somma 127  Si calcola il risultato della divisione delle mantisse  Si determina il segno del risultato  Si normalizza il risultato così ottenuto Non sempre quest’ultima operazione è necessaria La somma di 127 alla differenza degli esponenti è necessaria in quanto sono rappresentati in eccesso 127 E a,127 = E a E b,127 = E b E a/b,127 = E a/b = (E a + 127) - (E b + 127)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: Troncamento Spesso accade di rappresentare i risultati intermedi di una operazione con una precisione maggiore di quella degli operandi e del risultato Al termine dell’operazione è necessario effettuare una operazione di troncamento Il troncamento serve a rimuovere un certo numero di bit per ottenere una rappresentazione approssimata del risultato Si consideri il valore numerico rappresentato dal vettore: B = 0.b b -(k-1) b -k b -(k+1)... b -n Si voglia effettuare troncamento al bit k-esimo 45

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: troncamento Chopping  Consiste nell’ignorare i bit dal k-esimo all’n-esimo  Questo metodo è polarizzato o biased  L’errore è sempre positivo e varia nell’intervallo: 0    +(2 -k n ) Rounding  Se il bit k-esimo vale 0, lasciare invariato il bit in posizione (k-1) e ignorare i bit dal k-esimo all’n-esimo  Se il bit k-esimo vale 1, sommare 1 in posizione (k-1) e ignorare i bit dal k-esimo all’n-esimo  Questo metodo è simmetrico o unbiased  L’errore è centrato sullo zero e vale: -(2 -k n )    +(2 -k n ) 46

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Virgola fissa vs. virgola mobile Intervallo di variazione di un numero binario di 32 bit Codifica intera 0  |V I (B)|   2.15 x 10 9 Codifica a virgola fissa x   |V VF (B)|  +1 A pari numero di bit disponibili  con la rappresentazione intera o in virgola fissa, i valori rappresentati sono distribuiti uniformemente nel campo di rappresentabilità  con la rappresentazione in virgola mobile, i valori rappresentati sono distribuiti non uniformemente nel campo di rappresentabilità sono “più fitti” vicino allo 0 e “più radi” per valori assoluti grandi Nella rappresentazione in virgola mobile (floating point) la posizione della virgola è mobile ed è indicata dal valore di un fattore moltiplicativo 47

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Errore di quantizzazione: virgola fissa vs. virgola mobile Virgola fissa (con n bit per la parte frazionaria) E Ass = Val Vero - Val Rappr = costante con (-1/2)2 -n < E Ass < (+1/2)2 -n E Rel = E Ass / Val Vero (e cioè E Rel Val Vero = costante) tanto più piccolo è il valore vero da rappresentare tanto maggiore è l’errore relativo che si commette nel rappresentarlo tanto più grande è il valore vero da rappresentare tanto minore è l’errore relativo che si commette nel rappresentarlo Virgola mobile E Rel = costante (= 2 -#bit della M ) E Ass = aumenta all’aumentare del valore valore vero da rappresentare 48

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsempio Numeri in virgola fissa  Dato ed il suo successivo Errore percentuale: ( )/0.001*100 = 100%  Dato ed il suo successivo Errore percentuale: ( )/ *100 = 0.001% Numeri in virgola mobile  Dato 0.128e-100 ed il suo successivo 0.129e-100 Errore percentuale: ((0.129e e-100)/0.128e-100)*100 = %  Dato 0.128e+100 ed il suo successivo 0.129e+100 Errore percentuale: ((0.129e e-+100)/0.128e+100)*100 = % 49

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFine… 50