1 / 15

Overflow

Overflow. Overflow  traboccamento Si verifica se il risultato di un’operazione non puo’ essere rappresentato con il numero di bit a disposizione Nel caso di complemento a due (la norma): Si verifica solo se i segni sono uguali.

lora
Download Presentation

Overflow

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Overflow • Overflow  traboccamento • Si verifica se il risultato di un’operazione non puo’ essere rappresentato con il numero di bit a disposizione • Nel caso di complemento a due (la norma): • Si verifica solo se i segni sono uguali -124+   10000100          67=   01000011        Segni discordi.        _____   ________        Risultato corretto.         -57    11000111        70+     01000110        Segni concordi.        70=     01000110        Risultato scorretto (140 è fuori dal       ____     ________        range):OVERFLOW.       140      10001100

  2. Numeri frazionari • Fixed point

  3. Numeri frazionari • Floating point  come la notazione scientifica esponenziale • Esempio: 1753.427 si puo’ rappresentare come: 0.1753427*104= 1.753427*103=...= 1753427*10-3 • Aumenta la gamma di valori rappresentabili • Diminuisce e diventa variabile la precisione: • Non tutti i numeri sono rappresentabili con una certa rappresentazione • 10/3 = 3.33????? • In base tre il risultato dell’operazione e’ rappresentabile: 101/10 = 10.1

  4. Gamma di rappresentazione Le possibilita’ di rappresentare un certo valore non sono uniformi in tutta la gamma di valori rappresentabili. Es. Esponente da –100 a +100 “significand” di 10 cifre

  5. Normalizzazione • Un numero normalizzato ha il significand con una sola cifra prima del punto (virgola) • Se la base di rappresentazione e’ due, il numero prima della virgola non puo’ che essere uno • Quindi non occorre rappresentarlo

  6. Standard floating point • I numeri sono sempre normalizzati, cioe’ la parte frazionaria e’ del tipo 1.xxxxxxxxx…. • Il primo 1 non viene rappresentato perche’ implicito • Lo zero si rappresenta con un esponente e frazione a zero

  7. Una possibile rappresentazione floating point • Standard IEEE 754 • Singola precisione, 32 bit • Doppia precisione, 64

  8. Rappresentazione dell’esponente • Biased, cioe’ “spostata” di meta’ della precisione possibile • Esempio: se l’esponente e’ di 8 bit invece di rappresentare l’esponente in complemento (da –128 a +127) lo si rappresenta come: • Esponente reale + 127 • Quindi l’esponente reale –127 viene rappresentato come 0, l’esponente reale 0 come 127 e l’esponente reale 127 come 255 • Perche’? Per far si’ che due numeri floating point siano confrontabili in grandezza dagli stessi circuiti che confrontano i numeri interi.

  9. Standard IEEE

  10. 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

  11. Esempio • Il numero -0.75 (in base 10) è anche -3/4 (in base 10) oppure -3/22. • La sua rappresentazione binaria è quindi -0.11. • Nella notazione scientifica il valore è -0.11 x 20, 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:

  12. Approssimazione • La rappresentazione floating point permette di rappresentare numeri grandi e piccoli ma non sempre permette di rappresentare tutte le cifre significative che sono il risultato di un’operazione aritmetica • In questo caso si approssima il risultato • Semplicemente troncando delle cifre • L’errore e’ al massimo uguale al valore della cifra meno significativa • Troncando e modificando le cifre rimaste per minimizzare l’errore • Aggiungendo o meno 1 alla cifra meno significativa a seconda che la cifra eliminata sia maggiore o minore della meta’ • L’errore in questo caso e’ la meta’ della cifra meno significativa • Se la cifra troncata e’ esattamente la meta’ non e’ facile scegliere • Se si sceglie sempre in un modo si rischia di aumentare gli errori

  13. Somma e sottrazione • I numeri devono essere denormalizzati per avere esponente uguale • Se I numeri sono di grandezza molto diversa la denormalizzazione di uno dei numeri puo’ richiedere una sostanziale perdita di precisione (digit “escono” da destra) • L’operazione viene fatta sul significand • Un eventuale overflow puo’ essere gestito sistemando gli esponenti

  14. Moltiplicazione e divisione • I numeri non devono essere denormalizzati • Gli esponenti vengono sommati (o sottratti) • Eventuali overflow si sistemano aggiustando gli esponenti

  15. Configurazioni speciali • La rappresentazione standard non prevede alcuni casi particolari che sono utili • Denormalizzati: bit prima della virgola e’ zero, rendono meno rapida la transizione tra il piu’ piccolo numero normalizzato rappresentabile e lo zero

More Related