Rappresentazione in virgola mobile a 8 bit

Sto studiando come rappresentare i numeri frazionari come valori in virgola mobile. Sarà una rappresentazione a 8 bit. Da qualche parte nel testo, si dice che:

rappresentazione in virgola mobile a 8 bit

“Usiamo il primo bit per rappresentare il segno (1 per negativo, 0 per positivo), i successivi quattro bit per la somma di 7 e lesponente effettivo (aggiungiamo 7 per consentire esponenti negativi) e gli ultimi tre bit per la “parte frazionaria” della mantissa

Ora la domanda è: Perché è necessario aggiungere “7” e non un altro valore allesponente effettivo?

Commenti

  • Benvenuto in CS.SE! Il testo accenna al perché, tra parentesi. Per inciso, se ' non capisci la spiegazione in un unico testo, ' è spesso utile cercare una spiegazione diversa dellargomento . Ci sono molte risorse in virgola mobile.
  • Allora, perché 7 dovrebbe essere aggiunto?
  • Se ' hai capito la risposta al tuo prima domanda, ti incoraggio a modificare il tuo post per mostrare ciò che capisci.

Rispondi

Con 4 bit è possibile rappresentare 16 valori diversi: 0,1, …, 15. Se vuoi consentire esponenti negativi, ha senso prendere (circa) metà dei valori possibili per indicare un esponente negativo. Aggiungendo 7 allesponente si mappano i valori -7, -6, …, 0,1, …, 8 allintervallo rappresentabile. Potresti anche cercare complemento di due “s .

Commenti

  • Quindi aggiungendo 7, mappe -7, -6, …, – 1 ai corrispondenti valori positivi e aggiungendo un valore superiore a 7 si ottiene un valore fuori intervallo non corretto. Per lo stesso motivo, aggiungendo meno di 7 allesponente non ' risolve il problema. Grazie, ' ho quello che stavo cercando.
  • Laggiunta di numeri diversi cambia gli esponenti negativi e positivi supportati. ' una decisione di progettazione. Forse è sufficiente supportare -1 per la tua applicazione.
  • Sì , hai ragione. Questa è una decisione progettuale che linsegnante ha implementato attraverso il tutorial e non è ' un vincolo rigoroso.
  • La decisione di utilizzare un offset invece di 2 ' complemento IIRC doveva mantenere linverso del valore più piccolo più piccolo del va più grande lue, cioè per evitare overflow. È stato scelto con cura, in altre parole.
  • @KWillets: loffset consente anche di rappresentare lo zero come zeri e consente di utilizzare confronti di interi per confrontare i numeri in virgola mobile (escluso il bit del segno)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *