Convertir int 16 bits float (la moitié de précision à virgule flottante) en c++

Comment puis-je convertir un integer à un half precision float (qui doit être stocké dans un tableau unsigned char[2]). La gamme à l'entrée int sera de 1 à 65535. La précision n'est pas vraiment un souci.

Je suis en train de faire quelque chose de similaire pour la conversion à l' 16bit int dans un unsigned char[2], mais je comprends, il n'est pas half precision float C++ type de données. Exemple ci-dessous:

int16_t position16int = (int16_t)data;
memcpy(&dataArray, &position16int, 2);
Peut-être pertinentes : gamedev.stackexchange.com/a/17410/9333
Avec la pointe de Goz peut-être de les aider: 32 bits à 16 bits à virgule Flottante Conversion

OriginalL'auteur Ross | 2012-10-10