La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Rappresentazione di Numeri Reali Un numero reale è una grandezza analogica (continua) e quindi è rappresentabile solo in modo approssimato. Esistono due.

Presentazioni simili


Presentazione sul tema: "Rappresentazione di Numeri Reali Un numero reale è una grandezza analogica (continua) e quindi è rappresentabile solo in modo approssimato. Esistono due."— Transcript della presentazione:

1 Rappresentazione di Numeri Reali Un numero reale è una grandezza analogica (continua) e quindi è rappresentabile solo in modo approssimato. Esistono due forme per rappresentare un numero reale –Segno, parte intera, parte decimale (rappresentazione in virgola fissa) –Segno, mantissa, esponente (rappresentazione in virgola mobile)

2 Rappresentazione in virgola fissa (fixed-point) Utilizzando una rappresentazione su N bit si assume che la posizione della virgola sia fissa in un preciso punto allinterno della sequenza. Quindi si assegnano k bit per la parte intera e N-k bit per la parte decimale NB In una rappresentazione di tipo posizionale le cifre alla destra della virgola vengono moltiplicate per potenze negative della base Es. (5.75) 10 = 5*10 0 + 7*10 -1 + 5*10 -2 (11.011) 2 = 1*2 1 + 1*2 0 + 0*2 -1 + 1*2 -2 + 1*2 -3

3 Conversione decimale-binario di numeri non interi La parte intera si converte col metodo delle divisioni successive Per la parte alla destra della virgola: –si moltiplica la parte a destra della virgola per 2 –si prende la parte intera del risultato come cifra utile –si ripetono i 2 passi precedenti finché la parte a destra della virgola non diventa 0 Es. 19.375 Sappiamo che (19) 10 = (10011) 2 0.375 * 2 = 0.75 0.75 * 2 = 1.5 0.5 * 2 = 1.0 Quindi (19.375) 10 = (10011.011) 2

4 Osservazione importante Non è detto che un numero che ha una rappresentazione finita in una base, abbia una rappresentazione finita anche in unaltra. Es. 1/3 = (0.1) 3 = (0.33333….) 10 Lunico caso in cui questo avviene sicuramente è quando si converte da una base ad unaltra che ne è una potenza. Es. (101011100110.011) 2 = (5346.3) 8

5 Rappresentazione in virgola mobile (floating-point) Ricorda la notazione scientifica dei numeri Si riescono a manipolare numeri con ordini di grandezza molto differenti utilizzando per la rappresentazione un insieme limitato di bit Nel formato esponenziale un numero N viene espresso nella seguente forma b base del sistema di numerazione m mantissa del numero e esponente

6 Rappresentazione in virgola mobile (floating-point) b è 2 (la base è prefissata) Quindi per rappresentare un numero reale ci basta rappresentare mantissa ed esponente. La mantissa si suppone in virgola fissa con la virgola allinizio,seguita sempre da 1 (MSB). Es (decimale) 123.45 =.12345 * 10 3 (binario) 11.1011 =.111011 * 2 2 Ricorda: moltiplicare (dividere) un numero per una potenza della base equivale a far scorrere a sinistra (destra) il numero di un numero di posizioni pari allesponente

7 Rappresentazione standard Su 32 bit –1 bit per segno del numero –8 bit per esponente (generalmente rappresentato in complemento a due) –23 bit per la parte frazionaria della mantissa –la parte non frazionaria (0) e la prima cifra (1) della mantissa vengono sottintese –0 può avere segno positivo o negativo

8 Somma di due numeri in virgola mobile Quando si fanno somme, anche a mano, per sommare due numeri è necessario incolonnarli. In una rappresentazione in virgola mobile questo significa uguagliare gli esponenti. Es. (decimale) 123.5 + 1240.3 In virgola mobile.1235 * 10 3 +.12403 * 10 4 Quindi devo per prima cosa riportare i due numeri allesponente più grande 123.5 =.01235 * 10 4 … e poi posso sommare.01235 + Quindi:.12403 -------- 123.5 + 1240.3 =.13638 * 10 4 = 1363.8.13638

9 Approssimazioni nelle operazioni in floating point Quando la distanza fra la cifra più significativa e quella meno significativa è maggiore del numero di cifre a disposizione, il numero deve essere troncato: si trascurano cioè le cifre meno significative per le quali non cè spazio. Es. Supponendo di usare 4 bit per la mantissa 10 + 0.5 10 =.1101 * 2 4 0.5 = 0.1 * 2 0 Il risultato sarebbe 0.11011 * 2 4, ma ho solo 4 bit Quindi il risultato è 0.1101 * 2 4, e quindi 10+0.5=10!

10 Approssimazioni nelle operazioni in floating point Apparente paradosso: 10.5 non è rappresentabile con 4 bit, ma 15 sì! 15 =.1111 * 2 4 Per avere unidea della precisione con cui opera un calcolatore (numero N di bit con cui rappresenta la mantissa in floating point) si definisce precisione di macchina (epsilon) il più piccolo numero che sommato a 1 dà un risultato diverso da 1. Maggiore è N, più piccolo è epsilon.


Scaricare ppt "Rappresentazione di Numeri Reali Un numero reale è una grandezza analogica (continua) e quindi è rappresentabile solo in modo approssimato. Esistono due."

Presentazioni simili


Annunci Google