PDA

Visualizza la versione completa : [Emergenza] Calcolare a manina un floating point a 32 bit


zaltar
17-11-2004, 14:02
Avendo un numero decimale calcolare il rispettivo binario in virgola mobile a singola precisione (32bit).

E' un'emergenza, ne ho bisogna per PRIMA DI SUBITO.
I numeri incriminati sono:
1) 15,1375;
2) 1,84375;
3) 0,3203125.

Vi prego rispondete e in fretta!

P.S. scrivo in questo forum perchè so che c'è gente seria (uso Slack10...) e non so dove sbattere la testa perchè google fa i capricci non fornendo alcun risultato utile.

Plz!! :dhò:

kyraz
17-11-2004, 14:43
ma farti un cast in un programmino c..? :)

nik600
17-11-2004, 14:52
ciao


so che c'è gente seria (uso Slack10...)
che c'entra? anche io uso slack10 eppure non sono x niente serio! :D

x quello che ti serve, a parte che hai sbagliato forum (forse era + adatto programmazione) qui viene spiegato molto meglio di come potrei spiegartelo io

http://www.dit.unitn.it/~locigno/didattica/archit/03-04/Rapp_Numeri_S.pdf

zaltar
17-11-2004, 15:47
Grazie mille, a pag. 11 c'era proprio quello che non riuscivo a trovare da nessuna parte! :zizi:

FreeManX
17-11-2004, 16:37
Originariamente inviato da zaltar
Avendo un numero decimale calcolare il rispettivo binario in virgola mobile a singola precisione (32bit).

E' un'emergenza, ne ho bisogna per PRIMA DI SUBITO.
I numeri incriminati sono:
1) 15,1375;
2) 1,84375;
3) 0,3203125.

Vi prego rispondete e in fretta!

P.S. scrivo in questo forum perchè so che c'è gente seria (uso Slack10...) e non so dove sbattere la testa perchè google fa i capricci non fornendo alcun risultato utile.

Plz!! :dhò:

Fra mezz'ora ho l'esame di reti logiche ahahahaha :dhò:

Ti conviene prima convertirlo in virgola fissa e poi in mobile, che e' piu' veloce!

15,1375 in virgola mobile e:

00000000000000001111 (15) . MANTISSA

MANTISSA (0.1375) la moltiplichi per due, finche' minore di 1 metti come resto 0, quando arrivi a > di 1 metti come resto uno, lo togli dal risultato e continui a moltiplicare per due, fino al numero di cifre che ti servono:


0.1375 * 2 (resto)
0.275 0
0.55 0
1.1 1 (fai 11)
0.2 0
0.4 0
0.8 0
1.6 1 (togli 1) #mi fermo qua :D


percui il numero e' (la mantissa la leggi dall'alto):
00000000000000001111,0010001

per passarlo in virgola mobile, usi:
1 bit per il segno 0 positivo 1 negativo
8 bit per l'esponente che lo calcoli facendo uno shift della virgola fino ad avere il numero binario nella forma 1,MANTISSA, il numero di shift sommi 127 ed hai l'esponente del numero.
23 bit per la mantissa ottenuta dopo lo shift

percui il numero di prima e
0 100000010 1110010001

bye bye

Ilmalcom
17-11-2004, 18:40
Non c'azzecca nulla con Linux :dottò: Visto che ormai ti hanno risposto chiudo...

Loading