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.