私はHalf precision floating point representation の数値を扱う必要があるコードを持っています。これを達成するために、このタイプに関連するすべての演算子(算術論理、リレーショナル)をカスタム関数でオーバーロードし、半精度の浮動小数点数を持つSingle precision floating pointの数値を使用して、独自のC++クラスfp16を作成しました。単精度浮動小数点表現から半精度浮動小数点数への変換
半精度浮動小数点= 1つのサインビット、5指数ビット、10仮数ビット= 16ビット
単精度浮動小数点= 1つの符号ビット、8指数ビット、23仮数ビット= 32ビット
だから、私は単精度浮動小数点数からハーフ精度浮動小数点数に変換するために何をするのですか: -
有効ビットの場合 - 32ビットの切り捨て、すなわち13ビットの緩やかなものを使用して、半精度float 。
指数ビットを処理するにはどうすればよいですか。 8指数ビットから5指数ビットにはどうすればいいですか?
良い資料があれば助かります。
指数が5ビットで表現できない場合は、オーバーフロー状態です。 IEEE754のような表現を使用している場合は、結果として 'inf'を与えたいかもしれません。私は 'double'->' float'変換に関するすべての読みは関連していると思います。 – eudoxos
(そして、ああ、半分の精度のリファレンス[c/C++コード(matlab用)](http://www.mathworks.com/matlabcentral/fileexchange/23173)にウィキペディアの記事があります?それは良いインスピレーションかもしれません。) – eudoxos
@ eudoxos - MAtlabリンクに感謝します。それは何ができるかうまく説明します。 – goldenmean