PDA

View Full Version : Mic1


The Merk
30-10-2006, 17:09
Ciao a tutti ho bisogno di un aiuto. Devo fare un progetto in jvm che, dato un numero un ASCII, mi restituisce il corrispondente valore floating point. Più precisamente il testo del progetto è questo:
"Implementazione del metodo: strtof(f) che restituisce in TOS il corrispondente valore Floating Point standard IEE 754 del numero passato come Stringa ascii-decimale. Ad esempio, srtof("-7,5") ritorna in TOS il valore 0xC0F00000. Suggerimento: 7,5 = 111,1 = 1,111 * 2^2 -> mantissa = 111, esponente = 7f+2=81, segno = 1 -> 1100.0000.1111.0000.0000.0000.0000.0000
Il codice corrispondente in IJVM dovra' essere accompagnato dall'analisi
del problema, il progetto della soluzione e da un programma di test in
IJVM."
Se potete darmi qualche consiglio su come svilupparlo ve ne sarei molto grato...

cionci
30-10-2006, 21:50
Per il formato è semplice, basta studiarsi l'IEEE754 a singola precisione (32 bit, float): http://en.wikipedia.org/wiki/IEEE_754

Prendi il numero espresso nella stringa e lo converti in binario (attenzione alle potenze di due dopo la virgola)...poi normalizzi ed hai ottenuto la mantissa... Con la normalizzazione hai ottenuto anche l'esponente...basta sottrarci 127 e hai finito...

andbin
30-10-2006, 22:05
Ciao a tutti ho bisogno di un aiuto. Devo fare un progetto in jvm che, dato un numero un ASCII, mi restituisce il corrispondente valore floating point. Più precisamente il testo del progetto è questo:
"Implementazione del metodo: strtof(f) che restituisce in TOS il corrispondente valore Floating Point standard IEE 754 del numero passato come Stringa ascii-decimale. Ad esempio, srtof("-7,5") ritorna in TOS il valore 0xC0F00000. Suggerimento: 7,5 = 111,1 = 1,111 * 2^2 -> mantissa = 111, esponente = 7f+2=81, segno = 1 -> 1100.0000.1111.0000.0000.0000.0000.0000
Il codice corrispondente in IJVM dovra' essere accompagnato dall'analisi
del problema, il progetto della soluzione e da un programma di test in
IJVM."
Se potete darmi qualche consiglio su come svilupparlo ve ne sarei molto grato...EDIT: scusate x il post, ho sbagliato ... credevo si parlasse di Java. :ops: