Floating point

_overflow_1
ciao a tutti!!!

stavo studiando la rappresentazione in virgola mobile, ho capito che per l'esponente si usa la rappresentazione in eccesso...
quindi ad esempio si avrà:

$0000$ $-8$ in eccesso $8$
$0001$ $-7$ in eccesso $7$
$0010$ ...
$0011$ ...
$0100$ ...
$0101$ ...
$0110$ ...
$0111$ ...
$1000$ $0$ in eccesso $8$
$1001$ ...
$1010$ ...
$1011$ ...
$1100$ ...
$1101$ ...
$1110$ ...
$1111$ $7$ in eccesso $8$

quindi con $4$ bit avremo un eccesso $8$...
ora seguendo lo stesso principio con $3$ bit avremo un eccesso $4$...

ora il mio dubbio è il seguente perché nello standard IEEE 754 usando $8$ bit per l'esponente si ha un eccesso $127$ e non $128$?
:roll: cosa mi sfugge?

vi ringrazio anticipatamente per le risposte....

Risposte
Raptorista1
Premetto che non ho la certezza di quanto segue, ma:
mi verrebbe da risponderti che la scelta del bias [eccesso] è pressoché arbitraria: scegliendo un bias = 127, applicandolo a numeri di 8 bit, che possono rappresentare valori da 0 a 254, si ottengono valori tra -126 e 127; scegliendolo uguale a 128 invece si avrebbe avuta una rappresentazione degli esponenti tra -127 e 126. Quindi penso sia solo una decisione di chi ha stabilito lo standard.

_overflow_1
grazie per la risposta.

quindi dici che sarà stata una scelta del tutto arbitraria? strano, però...

Rggb1
Non è una scelta arbitraria, ma progettuale. I valori da rappresentare in un esponente a 8 bit sono da 1 a 254 in quanto 0 e 255 hanno significati particolari.

http://en.wikipedia.org/wiki/IEEE_754-2008
oppure anche
http://en.wikipedia.org/wiki/Single_pre ... int_format
http://en.wikipedia.org/wiki/Double_pre ... int_format

_overflow_1
ma quindi è sbagliato anche quello che ho fatto io prima?

mi riferisco al primo post...

Rggb1
Concettualmente no, ma non è IEEE standard ;)
Questo usa esponente 0 per alcuni numeri, da 1 a 254 per altri, 255 per INF e NAN.

_overflow_1
grazie mille Rggb tutto chiaro ora, era proprio quello che volevo sapere ;-)

Raptorista1
"Rggb":
Non è una scelta arbitraria, ma progettuale.

Perdona la pignoleria :D
Ma questo non conferma che il valore sia stato scelto arbitrario E opportuno per andare incontro a particolari necessità? [Che poi sarebbero Inf e NaN]

Rggb1
Pignoleria accettata. ;) E' vero, in linea di principio, vanno bene sia 127 sia 128.

Allora perché proprio 127? C'è un motivo più che valido; conosci questo (è abbastanza famoso)?
http://docs.sun.com/source/806-3568/ncg_goldberg.html

_overflow_1
grazie mille per tutte queste informazioni, vi ringrazio...

Rggb1
Per chi interessasse, riporto la citazione di cui parlavo
"David Goldberg":
... single precision has emax = 127 and emin = -126. The reason for having |emin| < emax is so that the reciprocal of the smallest number will not overflow. Although it is true that the reciprocal of the largest number will underflow, underflow is usually less serious than overflow. ...

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.