Rappresentazione in floating-point

Messaggioda Pasquale 90 » 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.
Pasquale 90
Junior Member
Junior Member
 
Messaggio: 127 di 168
Iscritto il: 14/11/2019, 11:24
Località: Salerno

Re: Rappresentazione in floating-point

Messaggioda feddy » 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$
Avatar utente
feddy
Advanced Member
Advanced Member
 
Messaggio: 2653 di 2702
Iscritto il: 26/06/2016, 00:25
Località: Austria

Re: Rappresentazione in floating-point

Messaggioda Pasquale 90 » 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 ?
Pasquale 90
Junior Member
Junior Member
 
Messaggio: 128 di 168
Iscritto il: 14/11/2019, 11:24
Località: Salerno

Re: Rappresentazione in floating-point

Messaggioda feddy » 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.
Avatar utente
feddy
Advanced Member
Advanced Member
 
Messaggio: 2654 di 2702
Iscritto il: 26/06/2016, 00:25
Località: Austria

Re: Rappresentazione in floating-point

Messaggioda Pasquale 90 » 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 ?
Pasquale 90
Junior Member
Junior Member
 
Messaggio: 129 di 168
Iscritto il: 14/11/2019, 11:24
Località: Salerno

Re: Rappresentazione in floating-point

Messaggioda feddy » 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
Avatar utente
feddy
Advanced Member
Advanced Member
 
Messaggio: 2655 di 2702
Iscritto il: 26/06/2016, 00:25
Località: Austria

Re: Rappresentazione in floating-point

Messaggioda Pasquale 90 » 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.
Pasquale 90
Junior Member
Junior Member
 
Messaggio: 130 di 168
Iscritto il: 14/11/2019, 11:24
Località: Salerno


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti