|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: May 2005
Messaggi: 249
|
[C] floating point
*Generando in modo random i bit di una variabile double, determinare il corrispondente oggetto float del SA Float P Std.*
Il mio problema non è, ovviamente, generare 64 bit in modo random ma non ho capito come si trova il corrispondente float. In realtà vorrei anche capire la teoria di questa cosa, ho provato sui miei manuali di c ma oltre a descrivere semplicemente il double come numero a 64 bit e il float a 32 bit non dicono altro. Voi ne sapete di più? e conoscete anche un buon manuale da scaricare da dove studiare questa parte? Grazie |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: May 2005
Messaggi: 249
|
vi prego non mi dite che è un argomento che nessuno conosce!!!
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Per sapere come rappresentare un float a livello di bit devi conoscere lo standard con cui sono codificati.
Cmq bastava fare una ricerca con la funzione "cerca" del forum e inserire come keyword "float" cercando solo nel Forum di Programmazione. Tra i thread trovati ti segnalo questo che potrebbe interessarti: -> [C] Rappresentazione di un float Da cui puoi ricavare questo link che porta alla pagina di Wikipedia dedicata allo -> standard IEEE 754-1985 Spero sia quello che cercavi ![]() |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: May 2005
Messaggi: 249
|
ti ringrazio ma il mio problema non è che non so rappresentare un float, ma non so fare il passaggio dai 64 bit di un double al float rispettivo visto che dovrebbe averne 32 di bit... è questo che non ho capito!
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Se non è questo che intendi ... allora non ho capito cosa devi fare ...
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ok, non avevo capito bene il problema
![]() @EDIT: Andbin, temo che white05 lo debba implementare lui, il casting, se non ho capito male... |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
![]() Quindi tu dici che lui deve estrarre le 3 componenti (segno/esponente/mantissa) dal double e poi comporre il float applicando le dovute modifiche ai campi??? Per farlo è possibilissimo .... c'è solo da stare attenti alle differenze tra i due formati. Mi riferisco ad esempio alla dimensione dei campi, al bias dell'esponente e al 1 esplicito nel double.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: May 2005
Messaggi: 249
|
praticamente da quello che leggo nel testo dell'esercizio che ho postato nel primo post, io devo generare 64 bit random di un double, e da questi 64 bit risalire al float corrispondente.
ora mi chiedo due cose: 1) generare 64 bit random di un double implica qualche cosa di particolare visto che specifica che sono di un double o è sufficiente che con rand() genero una sequenza casuale di 64 bit? 2) una volta ottenuti questi 64 bit come faccio con questi a costruire il float corrispondente? ecco spero sia più chiaro ora. Grazie ad entrambi ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:18.