Conversione di un numero da Rappresentazione in virgola mobile a precisione singola in un punto a virgola mobile di precisione [chiuso]

0

Ho un codice in cui devo lavorare su Rappresentazione a virgola mobile a metà precisione numeri. Per farlo ho creato la mia classe C ++ fp16 con tutti gli operatori (aritmetici logici, relazionali) relativi a questo tipo sovraccarico delle mie funzioni personalizzate, mentre uso un Numero a virgola mobile singolo precisione con un numero in virgola mobile di precisione a metà.

Punto di virgola mobile a metà precisione = 1 Segno di bit, 5 bit di esponente, 10 bit di significato = 16 bit

Virgola mobile a precisione singola = 1 Bit di segno, 8 bit esponenziali, 23 bit significato e = 32 bit

Quindi cosa devo fare per convertire da un numero in virgola mobile a precisione singola a un numero in virgola mobile a mezza precisione: -

Per bit significato e - utilizzo la troncatura cioè 13 bit allentati dai 32 bit per ottenere 10 bit significati per il galleggiamento a mezza precisione.

Cosa devo fare per gestire i bit esponenti. Come passare da 8 bit esponenziali a 5 bit esponenti?

Qualsiasi buon materiale di lettura potrebbe aiutare.

    
posta goldenmean 15.09.2011 - 12:47
fonte

1 risposta

3

Converti in +INF o -INF a seconda dei casi. Il risultato dovrebbe essere certamente numerico, NaN è logicamente sbagliato.

    
risposta data 15.09.2011 - 13:00
fonte

Leggi altre domande sui tag