DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Numeri in virgola. Marco D. Santambrogio Ver. aggiornata al 10 Novembre 2015

Documenti analoghi
Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Numeri frazionari. sistema posizionale. due modi: virgola fissa virgola mobile. posizionale, decimale

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Unità Didattica 2 Rappresentazione dei Dati

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

codifica in virgola mobile (floating point)

Sperimentazioni di Fisica I mod. A Lezione 3

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

Rappresentazione in virgola mobile

Rappresentazioni numeriche

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

= < < < < < Matematica 1

Esercizi. Soluzioni degli esercizi. Soluzioni degli esercizi. Soluzioni degli esercizi

Richiami di aritmetica(2)

Codifica dati e istruzioni. Lezione 9. Codifica dati e istruzioni. Codifica dati e istruzioni. Codifica binaria dell informazione

Richiami di aritmetica

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 28 Gennaio 1999 PROVA SCRITTA

Numeri Frazionari. Numeri Frazionari

Fondamenti di Informatica. Codifiche per numeri decimali: virgola fissa e mobile

Cifre significative delle misure di grandezze fisiche

I sistemi di numerazione e la numerazione binaria

2.12 Esercizi risolti

La codifica. dell informazione

Prontuario degli argomenti di Algebra

Informatica Generale 02 - Rappresentazione numeri razionali

ANALISI CHIMICO FARMACEUTICA I

1 L estrazione di radice

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi

Floating Point N = M BE. Notazione in virgola mobile. base. esempi = =

Espressioni ed Equazioni

Rappresentazione dei numeri in un calcolatore

LEZIONE 1. del 10 ottobre 2011

Elaborazione aut. dei dati

Richiami sulla rappresentazione dei numeri in una base fissata

I RADICALI QUADRATICI

Gli insiemi numerici

Le tecniche di calcolo mentale rapido usano alcune proprietà delle operazioni. Le principali proprietà utilizzate sono: = = 2 3

04 - Numeri Complessi

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

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Informatica. Rappresentazione dei numeri Numerazione binaria

METODI E TECNOLOGIE PER L INSEGNAMENTO DELLA MATEMATICA. Lezione n

ESERCIZI di FONDAMENTI DI INFORMATICA RAPPRESENTAZIONE DEI NUMERI

Le quattro operazioni fondamentali

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 28 Gennaio 1999 PROVA SCRITTA

I diversi modi di contare

Sistemi di Numerazione Binaria NB.1

1. OPERAZIONE DI ESTRAZIONE DELLA RADICE DI UN NUMERO

RIPASSO_FRAZIONI. Frazioni Equivalenti. per 2 per 3 per 2 per 3 frazione equivalente frazione equivalente frazione equivalente frazione equivalente

Importanza delle incertezze nelle misure fisiche

Codifica binaria dei numeri

Esercizi. Esercizi sulla codifica (Parte 1) Elementi di Informatica e Programmazione. Soluzioni degli esercizi Esercizio 2

Monomi e Polinomi. Monomio Si dice monomio un espressione letterale in cui figurano solo operazioni di moltiplicazione.

Cifre significative. Andrea Bussani. 4 novembre 2012

Funzioni Pari e Dispari

Potenziamento formativo, Infermieristica, M. Ruspa RIPASSO DI MATEMATICA

Rappresentazione numeri in virgola mobile

Numeri frazionari. La codifica dell informazione. Conversione da decimale a binario di un numero frazionario. Rappresentazione dei numeri reali

Il Modello di von Neumann (2) Prevede 3 entità logiche:

1. NUMERI ED OPERAZIONI SUI NUMERI. a b a b a b a b

Codifica dell Informazione

L insieme dei numeri Relativi (Z)

Disequazioni in una incognita. La rappresentazione delle soluzioni

Rappresentazione binaria delle informazioni oppure Rappresentazione digitale delle informazioni

Rappresentazione dell'informazione in un calcolatore:

Numeri frazionari. La codifica dell informazione. Conversione da decimale a binario di un numero frazionario. Rappresentazione dei numeri reali

Accuratezza, precisione, tipi di errori e cifre significative dei dati analitici.

Le quattro operazioni fondamentali

Codifica dell Informazione

Codifica dei numeri negativi

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Definizione: Dato un sottoinsieme non vuoti di. Si chiama funzione identica o identità di in sé la funzione tale che.

ALGEBRA. Monomio: In un monomio distinguiamo parte numerica (o coefficiente) e parte letterale. Es.: -7 ax 2 b 3 y. Parte letterale.

Le disequazioni di primo grado

Sistemi di numerazione: generalità

i = unità immaginaria,

Conoscenze. 1. L addizione è l operazione che associa a due numeri, detti, un... numero, detto, che si ottiene...

CODICE FISCALE. Cos'è e a cosa serve

Laboratorio di Informatica

Le frazioni algebriche

ESPONENZIALI E LOGARITMI. chiameremo logaritmica (e si legge il logaritmo in base a di c è uguale a b ).

RADICALI QUADRATICI E NON Applicazione geometrica 1 (lato di un quadrato)

TEOREMA DEL RESTO E REGOLA DI RUFFINI

Anno 2. Radicali algebrici e aritmetici: condizioni di esistenza

TI Texas Instruments Incorporated

Alessandro Pellegrini

I.I.S. "Morea-Vivarelli" -- Fabriano CORSO DI TECNOLOGIE E TECNICHE DI RAPPRESENTAZIONE GRAFICA

Numeri decimali, rapporti e proporzioni

La divisione esatta fra a e b è l operazione che dati i numeri a e b (con a multiplo di b) permette di trovare un terzo numero c tale che c b = a.

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

Esercizio. Sia a R non nullo e siano m, n numeri interi non nulli con m n. Allora a m /a n è uguale a. [1] 1/a n m [2] 1/a m n [3] 1/a n m [4] a n m

La tabella dell addizione Completa la tabella e poi rispondi alle domande.

Costruiamo la STRISCIA DELLE MISURE. decametro metro decimetro. Tm Gm Mm km hm dam m dm cm mm µm nm pm

Esercitazione Informatica I AA Nicola Paoletti

Corso di Matematica per la Chimica

QUANTIZZAZIONE E CONVERSIONE IN FORMA NUMERICA

1.2 MONOMI E OPERAZIONI CON I MONOMI

Risoluzione di problemi ingegneristici con Excel

Transcript:

Numeri in virgola Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 10 Novembre 2015

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 2

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 -1... B -n Il suo valore è dato da V(B) = b k-1 x2 k-1 +... + b 0 x2 0 + b -1 x2-1 +... + b -n x2 -n Il fattore di scala che consente di passare dalla rappresentazione intera a quella a virgola fissa è pari a parte frazionaria 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 3

Esempio Si consideri il vettore binario: B = 010.10110 Il suo valore in virgola fissa è: V VF (B) = 2 1 + 2-1 + 2-3 + 2-4 = 2 + 1 / 2 + 1 / 8 + 1 / 16 = 43 / 16 = 2.6875 Il fattore di scala da utilizzare per la conversione è: S 5 = 2-5 = 1 / 32 = 0.03125 Il valore di B, considerandolo intero è: V I (B) = 2 6 + 2 4 + 2 2 + 2 1 = 64 + 16 + 4 + 2 = 86 Da cui, moltiplicando per il fattore di scala, si ha: V VF (B) = V I (B) x S 5 = 86 x 0.03125 = 2.6875 4

Virgola fissa vs. virgola mobile Intervallo di variazione di un numero binario di 32 bit Codifica intera 0 V I (B) +2 31 2.15 x 10 9 Codifica a virgola fissa +4.65 x 10-10 +2-31 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 5

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) Virgola mobile E Rel = costante (= 2 -#bit della M ) E Ass = aumenta all aumentare del valore valore vero da rappresentare 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 6

Esempio Numeri in virgola fissa Dato 0.001 ed il suo successivo 0.002 Errore percentuale: (0.002-0.001)/0.001*100 = 100% Dato 100.001 ed il suo successivo 100.002 Errore percentuale: (100.002-100.001)/100.001*100 = 0.001% Numeri in virgola mobile Dato 0.128e-100 ed il suo successivo 0.129e-100 Errore percentuale: ((0.129e-100-0.128e-100)/0.128e-100)*100 = 0.78125 % Dato 0.128e+100 ed il suo successivo 0.129e+100 Errore percentuale: ((0.129e+100-0.128e-+100)/0.128e+100)*100 = 0.78125 % 7

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 + 3.1764 10 17 Segno Mantissa Esponente 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 8

Numeri in virgola mobile Valori rappresentabili IEEE standard: Numeri floating-point in singola precisione S E M 1 bit Segno 8 bit Esponente 23 bit Mantissa 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 = 0 Rappresenta infinito (pos/neg) E = 255 e M!=0 NotANumber 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 2-126 x (0,M) non normalizzati Standard IEEE 32 bit: intervallo rappresentato -1.M x 10-38 x +1.M x 10 38 La precisione consentita è di circa 7 cifre decimali 9

Numeri in virgola mobile: Valori rappresentabili Motivazione della rappresentazione non normalizzata E = 0 e M!=0 (-1) s x 2-126 x (0,M) non normalizzati Il valore più piccolo rappresentabile normalizzato è ± 2 1-127 x 1,00 00 = ± 2 126 che espresso in virgola mobile da E=1 e M = 0-2 126 0 + 2 126? 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 149 10

Come passo da DEC a BIN? Come rappresentiamo il numero 3,375 10 in binario? 1 bit di segno 8 bit di esponente 23 bit di mantissa 11

3,375 10 in binario: segno La ricerca del segno è semplice 0 per indicare un segno + 1 per indicare un segno - 12

3,375 10 in binario: mantissa 3,375 10 è 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,375 10 è 11.01100 13

3,375 10 in binario: mantissa E quindi 3,375 10 è 11.01100 Ricordiamo La prima cifra della mantissa è sempre 1 Quindi devo normalizzare! E come si normalizza? 14

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 15

3,375 10 in binario: mantissa normalizzata E quindi 3,375 10 è 11.011 11.011 -> 1.1011 x 2 1 Mantissa = 10110000000000000000000 16

3,375 10 in binario: esponente Esponente (eccesso 127) = 127 + 1 L uno deriva dalla normalizzazione delle mantissa: 11.011 -> 1.1011 x 2 1 17

3,375 10 in binario Come rappresentiamo il numero 3,375 10 in binario? 1 bit di segno: 0 8 bit di esponente: 10000000 (128) 23 bit di mantissa: 10110000000000000000000 Mettiamo tutti insieme: 3,375 10 = 0 10000000 10110000000000000000000 18

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 19

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 20

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 21

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 + 127 E b,127 = E b + 127 E axb,127 = E axb + 127 = (E a + 127) + (E b + 127) - 127 22

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 + 127 E b,127 = E b + 127 E a/b,127 = E a/b + 127 = (E a + 127) - (E b + 127) + 127 23

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 -1... b -(k-1) b -k b -(k+1)... b -n Si voglia effettuare troncamento al bit k-esimo 24

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+1-2 -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+1-2 -n ) < ε < +(2 -k+1-2 -n ) 25

Fine 26