Eccesso 128

aaaalice1
Buongiorno, non riesco a capire come si faccia questo esercizio, qualcuno può gentilmente aiutarmi per favore? Premetto che non ho mai fatto informatica :roll:
Testo: ipotizzando che il numero 4020000000 in base 16, sia rappresentato in virgola mobile con 32 bit, di cui il primo sia il bit di segno e i successivi 8 dedicati all'esponente (eccesso 127), si identifichi che valore decimale esso rappresenta secondo lo standard IEEE 754.
Ho due caselle in cui devo inserire la stringa binaria e il numero corrispondente decimale. Non so come procedere..

Grazie.

Risposte
apatriarca
Una piccola curiosità, perché devi fare questo esercizio se non hai mai studiato informatica?

In ogni caso. Un numero in virgola mobile IEEE 754 (a singola precisione) è rappresentato nella seguente forma (escludendo alcuni casi particolari):
\[ -1^S \times 2^{E-127} \times 1.M \]
Qui \(S\) è il bit più significativo, \(E\) sono i seguenti 8 bit ed \(M\) sono gli ultimi 23 bit. La rappresentazione ad eccesso 127 significa semplicemente che al valore dell'esponente è stato sommato 127 e quindi rappresentato come un numero intero positivo. Nel tuo caso hai (con \(b\) indico binario e il resto è in decimale):
\[ S = 0, \quad E = 128, \quad 1.M = 1.01b. \]
Il numero è quindi positivo, l'esponente è uguale a \(128 - 127 = 1\) e il numero e la parte frazionaria sarà uguale a \(1.01b = 1 + 1/4 = 1.25 \) Il tuo numero è quindi uguale a \( 1.25 \times 2 = 2.5 \)
Per quanto riguarda la stringa binaria è sufficiente convertire ogni ottetto nella sua forma binaria. Puoi anche semplicemente chiedere a google usando "0x4020000000 to binary". Online puoi anche trovare dei siti che fanno queste conversioni per te: questo per esempio.

aaaalice1
Grazie mille davvero! Risposta chiarissima.

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