Rappresentazione dei numeri reali in un calcolatore

Похожие документы
Sistemi di Numerazione Binaria

Rappresentazione in virgola mobile Barbara Masucci

Sistemi di Numerazione Binaria

Numeri reali. Notazione scientifica (decimale) Floating Point. Normalizzazione. Esempi. Aritmetica del calcolatore (virgola mobile)

Calcolatori Elettronici Parte II: Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

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

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Slide (rielaborate) del prof. Emiliano Casalicchio

Numeri in virgola mobile

Rappresentazione dei Numeri

Utilizzata per rappresentare numeri frazionari nella. numero =(mantissa) 2 esponente. Il formato piu utilizzato e quello IEEE P754, rappresentato

Rappresentazione binaria

Rappresentazione in virgola mobile

Informatica Generale 02 - Rappresentazione numeri razionali

Rappresentazione numeri reali

Esercizi su Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

codifica in virgola mobile (floating point)

Calcolatori Elettronici Parte II: Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

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

Codifica. Rappresentazione di numeri in memoria

Esempio: Il formato floating point standard IEEE P754 (precisione semplice)

CALCOLO NUMERICO. Rappresentazione virgola mobile (Floating Point)

Rappresentazione in virgola fissa. Rappresentazione in virgola mobile (floating point)

Fondamenti di Informatica - 1. Esercizi A.A. 2011/2012

ARCHITETTUREDIELABORAZIONE,a.a Esercizi d esame NUMERI BINARI

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

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

Calcolo numerico e programmazione Rappresentazione dei numeri

Lezione 2. Rappresentazione dell informazione

Esercitazione n. 5. Rappresentazione dei numeri

Транскрипт:

Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri reali in un calcolatore Lezione 3 Università degli Studi di Napoli Federico II Facoltà di Ingegneria

Rappresentazione di numeri reali Con un numero finito di cifre è solo possibile rappresentare un numero razionale che approssima con un certo errore il numero reale dato Vengono usate due notazioni: A) Notazione in virgola fissa Dedica parte delle cifre alla parte intera e le altre alla parte frazionaria + XXX.YY B) Notazione in virgola mobile Dedica alcune cifre a rappresentare un esponente della base che indica l ordine di grandezza del numero rappresentato

Numeri reali: rappresentazione in virgola fissa Quando di un numero frazionario si rappresentano separatamente la parte intera e la parte frazionaria si parla di rappresentazione in virgola fissa La rappresentazione dei due contributi può essere realizzata secondo una delle tecniche viste in precedenza La parte frazionaria è rappresentata con un numero finito m di cifre binarie, scalata di un fattore 2 m che la rende intera La posizione della virgola è fissa e resta sottintesa

Numeri reali in virgola fissa La stringa si interpreta come,b -1 b -2..b -m b -1 2-1 +b -2 2-2 + +b -m 2 -m Esempio:.1011 si interpreta come 2-1 +2-3 +2-4 = 1/2 + 1/8 + 1/16 = 0,5 + 0,125 + 0,0625 = 0,6875 ovvero come 11 / 16 = 0,6875 La stringa 1011 è rappresentativa dell intero (11) 10 che va scalato del fattore 2-4

Numeri reali: rappresentazione in virgola mobile Un numero reale x può essere rappresentato dalla tripla (s,m,e) tale che: x = (-1) s m b e s è il segno (s=0 positivo, s=1 negativo) m è detta mantissa e è detto esponente b è la base di numerazione adottata In macchina sia m che e hanno un numero prefissato di cifre intervalli limitati ed errori di arrotondamento

Normalizzazione Per ciascun numero esistono infinite coppie mantissa-esponente che lo rappresentano Esempio (b=10): 346.09801 è rappresentato da» m= 346.09801, e=0 oppure» m= 346098.01, e= - 3 oppure» m= 0.034609801, e= 4 ecc Per rappresentazione normalizzata del numero si intende convenzionalmente quella in cui la mantissa ha la prima cifra a destra della virgola diversa da zero ovvero: 1/b m < 1 Esempio: ( 0.34609801, 3 )

Esempio: intervallo di rappresentazione Con b=10, usando 4 cifre per m e 2 per e (più due bit per i relativi segni), l insieme rappresentabile (utilizzando solo rappresentazioni normalizzate) è: [-0.9999 10 99,-0.1000 10-99 ] {0} [+0.1000 10-99,+0.9999 10 99 ] -0.9999 10 +99-0.1 10-99 0!! 0.1 10-99 0.9999 10 +99 Overflow negativo! Underflow! Overflow positivo! Con le stesse 6=4+2 cifre in virgola fissa + XXXX.YY : - L intervallo scende [-9999.99,+9999.99] - Ma si hanno 6 cifre significative invece di 4

Approssimazione Come è facile verificare, in questo tipo di rappresentazione l approssimazione non è costante In particolare la precisione assoluta è molto spinta in prossimità dello zero e va diminuendo progressivamente a mano a mano che il numero aumenta (in valore assoluto) Ad esempio: in prossimità dello zero l errore massimo che può essere commesso è 0.1001*10-99 - 0.1000*10-99 = 0.0001*10-99 in prossimità dell estremo superiore dell intervallo di rappresentazione, invece, l errore massimo che si può commettere è 0.9999*10 99-0.9998 *10 99 =0.0001 *10 99 Si commettono quindi errori piccoli su numeri piccoli ed errori grandi su numeri grandi

Errore relativo L errore relativo massimo (Dx / x) è grossomodo costante (1.001x10-99 - 1.000x10-99 ) /1.000x10-99 = 0.001 (1.001x10 99-1.000x10 99 )/1.000x10 99 = 0.001 (9.999x10 99-9.998x10 99 ) 9.998x10 99 = 0.0001

Overflow e Underflow L errore relativo dipende dal numero di cifre della mantissa Gli estremi dell intervallo di rappresentazione dipendono dal numero di cifre dell esponente Nel caso precedente di 2 cifre per l esponente, si ha overflow per numeri maggiori (in modulo) di 10 99 e si ha underflow per numeri minori (in modulo) di 10-99

Nel sistema binario conviene usare come fattore di scala una potenza di due poiché in tal caso l esponente indica direttamente il numero di posizioni di cui il punto binario va spostato: Rappresentazione floating-point binaria del numero X (base-10): 1. Ricondurlo nella forma: X=M 2 *2 e 2. Rappresentare separatamente i due numeri M ed e in binario. NOTA: e (esponente o caratteristica) à numero intero relativo solitamente rappresentato secondo la convenzione eccesso-p, M (mantissa) à numero razionale con una parte intera e una frazionaria rappresentato in virgola fissa e in ampiezza e segno

Standard IEEE 754 (1985) Formato standard indipendente dall architettura Precisione semplice a 32 bit: 1 8 23 SEGNO ESPONENTE MANTISSA Precisione doppia a 64 bit 1 11 52 SEGNO ESPONENTE MANTISSA Notazioni in modulo e segno Alcune configurazioni dell esponente sono riservate

IEEE 754 a 32 bit 1 8 23 SEGNO ESPONENTE MANTISSA x = (-1) S x 1.F x 2 Exp-bias ESPONENTE - Rappresentato in eccesso 127 - L intervallo è [-126, +127] - Il valore -127 è riservato per rappresentazioni speciali MANTISSA - Se ne rappresenta solo la parte frazionaria $ & N=!1 % '& N=!1 ( ) S "1. fraction"2 exponent!127, 1#exponent#254 ( ) S "0. fraction"2 exponent!126, exponent=0

IEEE 754: forma normalizzata La mantissa binaria normalizzata deve presentare un 1 a sinistra della virgola binaria. L esponente deve essere aggiustato di conseguenza Essendo sempre presente tale cifra non è informativa così come la virgola binaria; esse vengono considerate implicitamente presenti e non vengono memorizzate Per evitare confusione con una frazione tradizionale la combinazione dell 1 implicito della virgola binaria e delle 23/52 cifre significative vengono chiamate significando (invece che frazione o mantissa) Tutti i numeri normalizzati hanno un esponente e>0 Tutti i numeri normalizzati hanno un significando s tra 1 s<2 I numeri normalizzati non possono avere un esponente composto da soli 1. Tale configurazione serve per modellare il valore infinito ( )

Esempio A cosa corrisponde questo numero? Il bit di segno è 1, mentre il campo esponente contiene 129 e il campo significant contiene 1x2-2 : il numero corrispondente alla notazione è quindi -1.01 x 2^2, che corrisponde al numero decimale -1.25 x 4=-5.0

ESEMPIO Il numero -0.75 (in base 10) è anche -3/4 (in base 10) oppure -3/2 2. La sua rappresentazione binaria è quindi -0.11. Nella notazione scientifica il valore è -0.11 x 2 0, mentre la notazione normalizzata è -1.1 x 2-1. La rappresentazione generale per un numero in precisione singola è (-1) S X (1+significand) X 2 (exponent-bias) Il numero e rappresentato come:

IEEE 754: forma denormalizzata La mantissa binaria denormalizzata può assumere qualsiasi configurazione. Questa rappresentazione viene utilizzata per rappresentare valori inferiori a 2-126 Tutti i bit dell esponente sono posti a 0 (questa configurazione indica l utilizzo della forma denormalizzata) Il bit della mantissa a sinistra della virgola binaria è posto implicitamente a 0 Il numero più piccolo rappresentabile in questa configurazione è composto da una mantissa con tutti 0 a eccezione del bit più a destra La rappresentazione denormalizzata comporta una progressiva perdita di cifre significative

Rappresentazioni speciali Esponente 255 = 11111111 2 indica un valore speciale Esponente 255 = 11111111 2 ed f = 0, Il valore rappresentato è ± infinity Esponente 255 = 11111111 2 ed f diverso da zero Il valore rappresentato è Not a Number (NaN)