Rappresentazione dei numeri nel computer: tipi interi e floating point

Interi:

Quando scriviamo in un programma si può definire una variabile  che contiene numeri interi. Il nome della variabile è un allocazione di memoria che ci consente di immagazzinare all' interno di questa locuzione e si può immaginare per il computer come una sequenza di bit. Nel computer le unità elementari di memoria possono prendere soltanto due cifre e quindi possono assumere 0/1 questo sistema viene chiamato sistema binario che è differente dal sistema decimale in quanto si possono assumere cifre da 0 a 9. Quindi nel sistema binario le nostre cifre invece di essere pesate con potenze di 10 (come avviene nel sistema decimale) saranno pesate con potenze di 2.I bit che noi abbiamo a disposizione per rappresentare il numero dipende da come abbiamo impostato la variabile in questo caso la variabile Integer, che può essere di 32 bit ma anche più grandi o più piccoli dipende ovviamente da come imposta la variabile il programmatore. questa sequenza di bit serve per rappresentare sia il segno a cui serve soltanto un bit e il valore del numero per cui ha a disposizione i restanti bit. E' importante comprendere che avendo una rappresentazione tramite bit nel computer gli interi che possiamo rappresentare sono necessariamente  in un range tra un minimo e un massimo.
Un superamento della soglia massima/minima comporta un errore denominato overflow, ovvero il superamento della capacità massima/minima di rappresentazione. Di seguito vengono riportati i valori massimi e minimi per i tipi Integer Long

 ______________INTEGER ______________
Min value int32: -2147483648
Max value int32: 2147483647

 ______________ LONG ______________
Min value long: -9223372036854775808
Max value long: 9223372036854775807

Floating point:

La rappresentazione di floating point ovvero di numeri con la virgola è molto simile alla rappresentazioni di numeri interi. La stringa di bit contiene informazioni riguardanti il segno, la mantissa e l'esponente. nella rappresentazione di floating point oltre al problema degli overflow c'è anche il problema underflow che può verificarsi quando il risultato reale di un'operazione in virgola mobile è di entità inferiore (ovvero, più vicino a zero) rispetto al valore più piccolo rappresentabile come un normale numero in virgola mobile nel tipo di dati di destinazione.un altro problema di approssimazione è il roundoff error in quanto il risultato di un operazione quasi mai sarà esatto. Si ha di fatto un limite relativo al grado di precisione di un numero che porterà quindi ad una approssimazione inevitabile. Per quanto riguarda i tipi  single e double abbiamo:

value single : 1,401298E-45
value double: 4,94065645841247E-324

Infine di seguito si valuti la capacità minima e massima per i tipi floating point:



___________________ SINGLE (FLOAT)___________________
Min value single : -3,402823E+38
Max value single : 3,402823E+38

___________________ DECIMAL___________________
Min value decimal : -79228162514264337593543950335
Max value decimal : 79228162514264337593543950335

 ___________________DOUBLE ___________________ 
Min value double : -1,79769313486232E+308
Max value double : 1,79769313486232E+308

Commenti

Post popolari in questo blog

Alcuni esempi di strategie di trading algoritmico utilizzate

Processi stocastici con mean reversion: Ornstein–Uhlenbeck process, Dixit & Pindyck Model, Vasicek model, etc

Bollinger Bands