Divisione fra binari (floating point)

Black27
Buongiorno! Domani ho un esame, e non riesco a capire come si fa la divisione fra binari. Quindi ho pensato di rivolgermi a voi (meglio tardi che mai :roll: ).
Comunque, per la divisione fra due numeri binari non c'è alcun problema. Il problema è quando si fa la divisione utilizzando due numeri che seguono lo standard IEEE (floating point). Faccio un esempio:

diciamo che voglia fare 280 : 3.33
I due numeri trasformati in formato IEEE sono (lasciando 1 bit per il segno, 5 per l'esponente e 6 per la mantissa)

0 10111 000110
0 10000 101010

per prima cosa, mi occupo dell'esponente. Essendo una divisione, l'esponente del risultato sarà

$ 23 - 16 + 15 = 22 $ (cioè esponente di 280 - esponente di 3.33 + BIAS)

Per fare la divisione ora bisogna prendere le due mantisse e dividerle fra di loro. E qui mi blocco :oops:

$ 1000110 : 1101010 $

Come faccio da questo punto? Mi è stato detto che basta fare come alle elementari...Forse mi ci vuole una rinfrescatina :lol: , però io avrei fatto così:
Avrei visto se il divisore ci sta nel dividendo, in caso di risposta negativa avrei messo 0 al risultato, e aggiunto uno 0 alla fine del divisore. E qui avrei ripetuto l'algoritmo, aggiungendo 1 se il divisore ci sta nel resto dell'operazione precedente e avanti così fino a riempire i 6 bit. E' giusto? E poi, in caso che il primo numero del risultato sia 0, devo normalizzare?

Grazie :-D

Risposte
hamming_burst
Ciao,
il docente di ha detto bene, normale divisione, come alle elementari :-)

1. prendi il divisore controlli se il dividendo è >= . Se sì segnati $1$ e fai la differenza.
2. Con il resto devi riportare bit a bit e vedere se il divisiore, divide il dividendo (!!). Se Sì segni $1$ e fai la differenza, e se no $0$ e continui a riportare.

Normale divisione (forse in binario non sembra, ma è così).

Per il resto la procedura FP è corretta...non dimenticarti del segno.

Se hai dubbi...


PS: come ti è andato alla fine l'esame di Lambda Calcolo? per curiosità :-)

Black27
Ciao! Hehe perfetto! Ora son riuscito a farla =D infatti era proprio come ho scritto...non so perché, ma prima non mi veniva! Grazie!

/OT L'esame per la parte del lambda-calcolo è andata bene grazie, i problemi erano nel resto (5 pagine di programmazione in oCaml, in un'ora...un suicidio!). Alla fine ho preso 20 ma ho rifiutato perché tanto avevo solo 3 giorni per studiare, lo rifarò l'11 luglio! Così nel frattempo ho tempo di fare più pratica e avere maggior dimestichezza :-D

Black27
/OT ti ho mandato un PM, continuiamo li :smt023 sennò poi i boss si arrabbiano :smt079

Rggb1

Black27
/OT Niente di piu facile XD haha

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.