Rappresentazione dei Numeri in Virgola Mobile Valeria Cardellini

Documenti analoghi
Calcolatori Elettronici

Architetture dei Calcolatori (Lettere

Rappresentazione di numeri reali. Architetture dei Calcolatori (Lettere. Perché la rappresentazione in virgola mobile

Rappresentazione di numeri reali. Architetture dei Calcolatori (Lettere. Perché la rappresentazione in virgola mobile

Codifica dell Informazione per il Calcolo Scientifico

Rappresentazione di numeri reali. Rappresentazione in virgola mobile. Perché la rappresentazione in virgola mobile. Rappresentazione in virgola mobile

Rappresentazione in virgola mobile

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

Sistemi di Numerazione Binaria

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

Rappresentazione dei numeri reali

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Sistemi di Numerazione Binaria

Sistemi di Numerazione Binaria

Rappresentazione dei numeri reali in un calcolatore

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

Rappresentazione di numeri reali

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

Rappresentazione in virgola mobile Barbara Masucci

Numeri in virgola mobile

Rappresentazione binaria

Rappresentazione binaria

Lezione 7 Aritmetica in virgola mobile (1)

Rappresentazione dei dati

Numeri reali. Un numero reale X può essere espresso nella forma. X = f x 10 E. X = 0,314 x 10 1

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

Informatica Generale 02 - Rappresentazione numeri razionali

Rappresentazione numeri relativi e reali

Lezione 9 Aritmetica in virgola mobile (3)

Corso di Fondamenti di Informatica Rappresentazione dei dati numerici Aritmetica dei registri Anno Accademico 2011/2012 Francesco Tortorella

FONDAMENTI DI INFORMATICA. Prof. Emiliano Casalicchio

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

Informazione binaria: - rappresentazione dei numeri razionali -

Parte III Indice. Rappresentazione dei valori frazionari. Esercizi. in virgola fissa in virgola mobile III.1. Fondamenti di Informatica

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

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

Rappresentazione dei Numeri

Unità aritmetica e logica

Rappresentazione numeri reali

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

FONDAMENTI DI INFORMATICA. Prof. Luigi Ingrosso

Codifica dell informazione

Un quadro della situazione. Lezione 6 Aritmetica in virgola mobile (2) e Codifica dei caratteri. Dove siamo nel corso. Organizzazione della lezione

Numeri frazionari nel sistema binario

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

Sistemi di Numerazione Binaria NB.1

Sistema Numerico Decimale

Rappresentazione dell Informazione

Rappresentazione dei numeri reali

Algebra di Boole e porte logiche

Codifica di informazioni numeriche

CALCOLO NUMERICO. Rappresentazione virgola mobile (Floating Point)

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

Codifica dell informazione numerica

Rappresentazione dell informazione

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

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

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

Operazioni sui binari

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

Rappresentazione delle informazioni

L Aritmetica del Calcolatore

Codifica dell informazione numerica. Matteo Re, Nicola Basilico,

Rappresentazione di numeri in virgola mobile

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

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

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

= = =

Rappresentazione in virgola mobile. 5 ottobre 2015

Codifica. Rappresentazione di numeri in memoria

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

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

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

Rappresentazione e Codifica dell Informazione

Conversione binario-decimale. Interi unsigned in base 2. Esercitazioni su rappresentazione. dei numeri e aritmetica

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

Numeri con segno ed in virgola

Codifica dell informazione numerica

Rappresentazione dell Informazione. Emilio Di Giacomo e Walter Didimo

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

Operazioni artimetiche

Rappresentazione dell informazione

Cenni alla rappresentazione dei tipi dato primitivi

Interi unsigned in base 2. Esercitazioni su rappresentazione dei numeri e aritmetica. Conversione binario-decimale

RAPPRESENTAZIONE DEI NUMERI IN UN CALCOLATORE

La codifica delle informazioni numeriche ed alfanumeriche.

Rappresentazione della informazione

La codifica. dell informazione

Lezione 3. I numeri relativi

Transcript:

Rappresentazione dei Numeri in Virgola Mobile Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Argomenti q Rappresentazione di numeri reali q Rappresentazione in virgola mobile q Standard IEEE 754 q Confronto e addizione in virgola mobile Valeria Cardellini - CE 2018/19 1

Rappresentazione di numeri reali q Con un numero finito di cifre è possibile rappresentare solo un numero razionale che approssima con un certo errore il numero reale dato q Vengono usate due notazioni Notazione in virgola fissa ü Dedica parte delle cifre alla parte intera e le altre alla parte frazionaria (la posizione della virgola è fissata): + XXX.YY Notazione in virgola mobile ü Dedica alcune cifre a rappresentare un esponente della base che indica l ordine di grandezza del numero rappresentato ü Esempio notazione scientifica + X.XX 10 ±YY Valeria Cardellini - CE 2018/19 2 Limitazioni della rappresentazione in virgola fissa q Limitazioni della rappresentazione in virgola fissa Fissato il numero di cifre e la posizione della virgola: 1. Non rappresenta bene numeri frazionari molto grandi 2. Non rappresenta bene numeri (frazioni) molto piccoli Come rappresentare in virgola fissa: ü 500000000000000.00003 ü 0.0000000000000000008 ü Fissato il numero di cifre per rappresentare parte intera e frazionaria Valeria Cardellini - CE 2018/19 3

Perché la rappresentazione in virgola mobile q La rappresentazione in virgola mobile estende l intervallo di numeri rappresentati a parità di cifre, rispetto alla notazione in virgola fissa q Notazione scientifica Si esprime 432 000 000 000 come 4.32 x 10 11 Le 11 posizioni dopo il 4 vengono espresse dall esponente q Principio della rappresentazione in virgola mobile (detta anche floating point) Si fa scorrere la virgola decimale fino ad una posizione conveniente, tenendo conto di ogni spostamento con l esponente Valeria Cardellini - CE 2018/19 4 Rappresentazione in virgola mobile q E utile perché Permette di rappresentare in maniera compatta numeri molto grandi, ma anche molto piccoli, sia positivi sia negativi q Numeri reali rappresentati tramite una coppia di numeri <m,e> n = ±m b ±e m: mantissa (detto anche significante), normalizzata tra due potenze successive della base b b i-1 m < b i e: esponente intero (detto anche caratteristica) q Sia m che e hanno un numero fissato di cifre: Intervalli limitati Errori di arrotondamento Valeria Cardellini - CE 2018/19 5

Esempio in base 10 q Numerali a 5 cifre +.XXX + EE q Mantissa: 3 cifre con segno 0.1 m < 1 q Esponente: 2 cifre con segno -99 e +99-0.999 10 +99-0.1 10-99 0!! 0.1 10-99 0.999 10 +99 Overflow negativo! {! Underflow! q Notare che con lo stesso numero di cifre in notazione a virgola fissa + XXX.YY L intervallo scende [-999.99, 999.99] Ma si hanno 5 cifre significative invece di 3 Overflow positivo! Valeria Cardellini - CE 2018/19 6 Rappresentazione in virgola mobile dei numeri binari q Lo stesso approccio della virgola mobile può essere seguito per rappresentare i numeri binari come ±m b ±e ± 1.xxxxxxxxx 2 2 ±yyyy 2 q Da notare che, di solito, la base b è implicita e quindi È sufficiente memorizzare segno, mantissa (o significante) ed esponente (o caratteristica) q Si usa un certo numero di bit (almeno 32) Si riserva spazio per segno, mantissa ed esponente Valeria Cardellini - CE 2018/19 7

Standard per la rappresentazione q Importanza di definire uno standard per la rappresentazione dei numeri in virgola mobile Per definire la semantica delle istruzioni in virgola mobile q International Standard Organization (ISO) Vi appartengono circa 100 organizzazioni che si occupano di creare standard q IEEE Computer Society (Institute of Electrical and Electronics Engineers) definisce lo IEEE standard for binary floating arithmetic (riferito come IEEE 754) nel 1985 Specifica il formato, le operazioni, le conversioni tra i diversi formati floating point e quelle tra i diversi sistemi di numerazione, il trattamento delle eccezioni q Nel 1989 IEEE 754 diventa uno standard internazionale (IEC 559) Valeria Cardellini - CE 2018/19 8 Standard IEEE 754 q Formato non proprietario, ossia non dipendente dall architettura del calcolatore q Precisione semplice a 32 bit: 1 +/- q Precisione doppia a 64 bit: 1 +/- q Notazione in modulo e segno q Alcune configurazioni dell esponente sono riservate q Segno (1 bit): 8 23 esp esp 0 per positivo, 1 per negativo mantissa 11 52 mantissa Valeria Cardellini - CE 2018/19 9

IEEE 754 a 32 bit: esponente q Esponente (8 bit) Rappresentato in eccesso 127 (polarizzazione o bias) L intervallo di rappresentazione è [-127, 128] Le due configurazioni estreme sono riservate, quindi -126 e 127 Se gli 8 bit dell esponente contengono 10100011 = 163 10 ü L esponente vale 163-127=36 Se gli 8 bit dell esponente contengono 00100111 = 39 10 ü L esponente vale 39-127=-88 q Perché la polarizzazione? Il numero più grande che può essere rappresentato è 11 11 Il numero più piccolo che può essere rappresentato è 00 00 Quindi, quando si confrontano due interi polarizzati, per determinare il minore basta considerarli come interi senza segno Valeria Cardellini - CE 2018/19 10 Richiamo su rappresentazione in eccesso 2 n-1 q Caso particolare della rappresentazione in eccesso k, con k = 2 n-1 Con n bit si rappresenta l eccesso 2 n-1 Il numero m viene rappresentato in eccesso 2 n-1 come m + (2 n-1-1) q Intervallo di rappresentazione come complemento a 2 (CP2): [-2 n-1, 2 n-1-1] q Regola pratica di conversione da decimale I numerali si ottengono da quelli in CP2 complementando il bit più significativo q Esempio n=4 bit: eccesso 2 4-1 =8, intervallo [-8, 7] (-3) 10-3+8=5 è 0101 (+4) 10 +4+8=12è 1100 Valeria Cardellini - CE 2018/19 11

Numeri normalizzati q Un numerale è in rappresentazione normalizzata quando e 00000000 q In questa rappresentazione, la mantissa è normalizzata tra 1 e 2: 1 m < 2 q Quindi, la mantissa è sempre nella forma: 1.XXXXXXXXX X q Si usano tutti i 23 bit per rappresentare la sola parte frazionaria (1 prima della virgola è implicito) q Gli intervalli di numeri rappresentati sono pertanto: (-2 128,-2-126 ] [2-126,2 128 ) Gli estremi sono esclusi perché il massimo valore assoluto di m è molto vicino a 2, ma è comunque inferiore Valeria Cardellini - CE 2018/19 12 Numeri denormalizzati q Problema: come rappresentare un numero molto piccolo? q Un numerale è in rappresentazione denormalizzata quando e=00000000 q L esponente assume il valore convenzionale -126 q La mantissa è tra 0 e 1: 0 < m < 1 q Quindi, la mantissa è sempre nella forma: 0.XXXXXXXXX X q Si usano tutti i 23 bit per rappresentare la sola parte frazionaria q La più piccola mantissa vale 2-23 q Gli intervalli rappresentati NB Più piccola sono: è la mantissa, minore è il (-2 numero -126,-2 di -149 cifre ] [2 significative -149,2-126 ) Valeria Cardellini - CE 2018/19 13

Esempi: conversione da virgola mobile q Quale numero in singola precisione rappresentano i seguenti 32 bit 1 10000001 01000000000000000000000 ü Segno negativo (-) ü Esponente e = 2 7 + 2 0-127 = 129-127 = 2 ü Mantissa m = 1 + 2-2 = 1.25 ü Quindi il numero rappresentato è -1.25 2 2 = -5 0 10000011 10011000000000000000000 ü Segno positivo (+) ü Esponente e = 2 7 + 2 1 + 2 0-127 = 131-127 = 4 ü Mantissa m = 1 + 2-1 + 2-4 + 2-5 = 1.59375 ü Quindi il numero rappresentato è 1.59375 2 4 = 25.5 Valeria Cardellini - CE 2018/19 14 Esempi: conversione in virgola mobile q Quale è la rappresentazione a singola precisione del numero 8.5 ü Segno positivo (0) ü 8.5 in binario è 1000.1 2 0 = 1.0001 2 3 ü Esponente e: 3 + 127 = 130 = 10000010 ü Mantissa m: 00010000000000000000000 ü Quindi 0 10000010 00010000000000000000000-13.75 ü Segno negativo (1) ü 13.75 in binario è 1101.11 2 0 = 1.10111 2 3 ü Esponente e: 3 + 127 = 130 = 10000010 ü Mantissa m: 10111000000000000000000 ü Quindi 1 10000010 10111000000000000000000 Valeria Cardellini - CE 2018/19 15

Standard IEEE 754 a 32 bit: estremi degli intervalli q Più grande normalizzato: ~±2 128 X 11111110 11111111111111111111111 ± 2 127 ~2 q Più piccolo normalizzato: ±2-126 X 00000001 00000000000000000000000 ± 2-126 1 q Più grande denormalizzato: ~ ±2-126 X 00000000 11111111111111111111111 ± 2-126 (0.11... ) 2 1 q Più piccolo denormalizzato: ±2-149 X 00000000 00000000000000000000001 ± 2-126 (0.00...1 ) 2 = 2-23 Valeria Cardellini - CE 2018/19 16 Intervallo di rappresentazione Overflow negativo Underflow negativo Numeri negativi rappresentabili Zero Underflow positivo Numeri positivi rappresentabili Overflow positivo ( ] x [ -2 128-2 -149 0 2-149 2 128 q L overflow può essere positivo Quando si devono rappresentare numeri positivi maggiori di 2 128 q L overflow può essere negativo Quando si devono rappresentare numeri negativi minori di 2 128 q L underflow può essere positivo Quando si devono rappresentare numeri positivi minori di 2-149 q L underflow può essere negativo Quando si devono rappresentare numeri negativi maggiori di -2-149 Valeria Cardellini - CE 2018/19 17 )

Confronto tra numeri in virgola mobile q Per stabilire quale di due numeri in virgola mobile sia il maggiore q Se sono di segno discorde, allora il numero positivo è maggiore q Se sono di segno concorde Se sono positivi ü Il numero con l esponente più grande è il maggiore; a parità di esponente, il numero con mantissa più grande è maggiore Se sono negativi ü Il numero con l esponente più piccolo è il maggiore; a parità di esponente, il numero con mantissa più piccola è maggiore Valeria Cardellini - CE 2018/19 18 Confronto tra numeri in virgola mobile (2) q Per due numeri positivi (negativi) Siano a e b due numeri positivi (negativi) rappresentati in virgola mobile da a 31 a 30 a 0 e b 31 b 30 b 0 Notare che a 31 = b 31 = 0 (1) q Per verificare quale dei due sia il maggiore, non occorre nessuna conversione È sufficiente confrontarli come se fossero interi senza segno Basta scorrere i bit, ed al primo bit diverso si individua il maggiore ü Il numero con l i-esimo bit a 1 (0) ü Il numero con esponente/mantissa più grande (più piccolo) è il maggiore Valeria Cardellini - CE 2018/19 19

Configurazioni particolari q Lo standard IEEE 754 attribuisce valori convenzionali a particolari configurazioni di e ed m e ed m tutti 0: rappresentano il valore 0 (altrimenti non rappresentabile) m tutti 0 ed e tutti 1: rappresentano l infinito (± ) m 0 ed e tutti 1: rappresentano la situazione Not A Number (NAN), cioè un valore indefinito (ad es. il risultato di una divisione per 0 o la radice quadrata di un numero negativo) Normalizzato ± 0<esp<Max Qualsiasi stringa di bit Denormalizzato ± 0 Qualsiasi stringa di bit diversa da zero Zero ± 0 0 Infinito ± 111 1 0 NaN ± 111 1 Qualsiasi stringa di bit diversa da zero Valeria Cardellini - CE 2018/19 20 Osservazioni sulla precisione singola q In modo assolutamente indipendente dalla rappresentazione usata, con 32 bit è possibile rappresentare soltanto 2 32 valori diversi q I numeri rappresentati in virgola mobile hanno una densità maggiore vicino allo zero q Diversi compromessi nella scelta del formato q Incrementando la dimensione dell esponente Si diminuisce la dimensione del significando Si espande l intervallo di rappresentazione (esponenti maggiori) ma si perdono cifre significative (precisione) Valeria Cardellini - CE 2018/19 21

IEEE 754 a 64 bit q Segno (1 bit) q Esponente (11 bit) Rappresentato in eccesso 1023 L intervallo di rappresentazione è [-1023, 1024] q Mantissa (52 bit) Normalizzata come nella singola precisione q Configurazione riservate come nella singola precisione per la rappresentazione di 0 Numeri denormalizzati (positivi e negativi) Infinito (positivo e negativo) NaN (Not a Number) q Esercizio Quali è l intervallo di rappresentazione dei numeri a doppia precisione? Valeria Cardellini - CE 2018/19 22 Errore assoluto ed errore relativo q Rappresentando un numero reale n nella notazione floating point si commette un errore di approssimazione q In realtà viene rappresentato un numero razionale n con un numero limitato di cifre significative q Errore assoluto: e A = n-n q Errore relativo: e R = e A /n = (n-n )/n q Se la mantissa è normalizzata, l errore relativo massimo è costante su tutto l intervallo rappresentato, ed è pari ad un unità sull ultima cifra rappresentata Esempio: 10 cifre frazionarie e R = 2-10 q Nella notazione non normalizzata, l errore relativo massimo non è costante Valeria Cardellini - CE 2018/19 23

Addizione in virgola mobile Valeria Cardellini - CE 2018/19 24 Addizione in virgola mobile (2) q Per addizionare e sottrarre occorre scalare le mantisse per eguagliare gli esponenti q Esempio (notazione IEEE 754) n 1 + n 2 n 1 : 0 10011001 00010111011100101100111 n 2 : 0 10101010 11001100111000111000100 e 1 = (26) 10, e 2 = (43) 10 : occorre scalare m 1 di 17 posti n' 1 : 0 10101010 00000000000000001000101 + n 2 : 0 10101010 11001100111000111000100 Bit implicito della mantissa 0 10101010 11001100111001000001001 Somma delle mantisse 0 10101010 11001100111001000001010 Round q Notare che l addendo più piccolo perde cifre significative Valeria Cardellini - CE 2018/19 25

Unità aritmetica per addizione in virgola mobile Valeria Cardellini - CE 2018/19 26