Passa al tema normale
Discussioni su Analisi Numerica e Ricerca Operativa

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

Rappresentazione in floating-point

16/03/2020, 14:33

Da poco ho iniziato il corso di laboratorio di calcolo, leggendo sul libro consigliato dalla professoressa, cioè
Fondamenti di calcolo numerico-Monegato, nelle primissime pagine, cioè cap.1-par. 1.2, si parla della rappresentazione dei numeri in un calcolatore nello specifico rappresentazione in floating-point.

Quindi considero $a in RR$ è possibile scrivere $a$ nella seguente maniera
$a=pN^q$
dove $p in RR$, $N$ è la base del sistema di numerazione e $q in ZZ$ è l'esponente.

Per poter rappresentare un numero $a in RR$ in una locazione di memoria occorre normalizzare il numero in questione, cioè $N^-1 le |p|<1$, quindi ad esempio sia $a=3.12$ normalizzato risulterebbe $a'=0.312*10$.
In questo caso la parte del numero dopo il punto decimale cioè $312$ è detta mantissa, invece $10$ vien detto caratteristica.

Indico $p$ mantissa e con $q$ caratteristica.

Una locazione di memoria la possiamo immaginare divisa in tre parti
1) segno del numero $a$
2) spazio riguardante la caratteristica $q$ del numero $a$
3) spazio riguardante la mantissa $|p|$ del numero $a$

Ogni spazio riguardante una locazione di memoria, è limitato ossia
ad esempio lo spazio riguardante la mantissa $|p|$ sia costituito da $c$ cifre, una mantissa con più di $c$ cifre non è rappresentabile.
Domanda: Ma in questo caso se ho una mantissa con $h+c$ cifre è possibile effettuare un arrotondamento o troncamento ? in modo d'avere una mantissa con $c $ cifre
Continua....
Per la caratteristica $q$ deve soddisfare $m le q le M$ con $m<0$ e $M>0$, i quali variano da calcolatore a calcolatore. La parte a seguire non mi è chiara
Per la "memorizzazione" di $q$ si suggerisce di operare nel seguente modo: fissato $m$, memorizzare la nuova quantità $q*=q-m$ la quale è sempre maggiore di zero, "ricordando" che ogni numero viene cosi rappresentato a meno del fattore costante $N^m$.

Ci sono questi due aspetti che non mi sono chiari, grazie per l'eventuale aiuto.
Ciao.

Re: Rappresentazione in floating-point

16/03/2020, 18:00

E' quello che viene chiamato in gergo "bias". Cerca su internet "bias dell'esponente", è spiegato in ogni introduzione all'aritmetica di macchina. Detto in parole povere, invece di salvarsi tutto il possibile range di valori per $q$, lo si memorizza come un numero positivo, a patto poi di riscalarlo in modo opportuno.

Come esempio pratico, pensa che in precisione doppia $m = -1022$ e $M=1023$

Re: Rappresentazione in floating-point

16/03/2020, 19:40

Ciao feddy grazie per avermi risposto.

Ho ricercato su internet quello che mi hai suggerito, quello che ho potuto capire si tratta sostanzialmente di una questione di più "forma" che di sostanza, in altre parole supponendo di lavorare con "precisione singola" quindi $8bit$ volessi scrivere come esponente $q=-126$ con questa notazione $q^*=q+127=-126+127=1$ quindi mi troverei un numero reale $a $ in forma normalizzata del tipo

$a=0.123456"x"10^(-6)=0.123456"x"10^(-6+127)=0.123456"x"10^(121)$


Ora non so se quello detto da me risulti vero inoltre non se ci sono altre utilità di questa notazione, ce ne altre ?

Poi il $127=2^(n-1)-1$ il $2^(n-1)-1$ come si determina ?

Re: Rappresentazione in floating-point

16/03/2020, 20:30

Su wikipedia potresti trovare informazioni utili tipo questa, anche se in inglese.


Pasquale 90 ha scritto:$ a=0.123456"x"10^(-6)=0.123456"x"10^(-6+127)=0.123456"x"10^(121) $



Questa catena di uguaglianze è errata ! Non ti sei ricordato che
Pasquale 90 ha scritto:ogni numero viene cosi rappresentato a meno del fattore costante $N^m$



Pasquale 90 ha scritto:Poi il $ 127=2^(n-1)-1 $ il $ 2^(n-1)-1 $ come si determina ?


In questo caso $n=8$ credo sia quello che vuoi sapere.

Re: Rappresentazione in floating-point

16/03/2020, 20:47

feddy ha scritto:Su wikipedia potresti trovare informazioni utili tipo questa, anche se in inglese.


Pasquale 90 ha scritto:$ a=0.123456"x"10^(-6)=0.123456"x"10^(-6+127)=0.123456"x"10^(121) $



Questa catena di uguaglianze è errata ! Non ti sei ricordato che
Pasquale 90 ha scritto:ogni numero viene cosi rappresentato a meno del fattore costante $N^m$

Mi rendo conto del grave errore commesso, riferito all'uguaglianza, perdonami ma sono un paio d'ore che cerco di capire questo concetto, sarà una banalità ma non riesco ad identificare tale concetto.

Pasquale 90 ha scritto:Ciao feddy grazie per avermi risposto.

Ho ricercato su internet quello che mi hai suggerito, quello che ho potuto capire si tratta sostanzialmente di una questione di più "forma" che di sostanza, in altre parole supponendo di lavorare con "precisione singola" quindi $ 8bit $ volessi scrivere come esponente $ q=-126 $ con questa notazione $ q^*=q+127=-126+127=1 $

Fino a qui ho detto bene ?

Re: Rappresentazione in floating-point

17/03/2020, 09:07

Nella prima parte volevo solo dire che per avere l'uguaglianza devi ricordarti di moltiplicare per $10^{127}$.

Per l'altra domanda, sì. Un esempio è questo, in singola precisione:

Il numero $ - 0.75$ in binario è $-0.11$, che in notazione normalizzata è $-1.1 \cdot 2^{-1}$. Ora, ovviamente il bit per il segno è $1$ (è negativo). Ricorda che il numero è scritto come $(-1)^s \cdot \text{1.frazione} \cdot 2^{\text{exp}-127}$

In questo caso, deve essere $\text{exp} - 127= -1$, quindi $\text{exp} = 126 = 2^6+ 2^5 +2^4 +2^3+2^2+2$. Più chiaramente con un disegno:

Immagine

Re: Rappresentazione in floating-point

17/03/2020, 11:06

Si feddy, ho trovato tutte le mie risposte nelle seguenti pagine :
http://old.disco.unimib.it/architettura ... biased.htm
http://old.disco.unimib.it/architettura ... m#problema

che a quanto vedo dovrebbero essere le stesse dell'esercizio da te proposto.
Grazie.
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.