2012-03-09 8 views
9

有効なfloat(double)数値を返すか、またはinputで指定された数値がNaNを返さない場合は、仮数および指数(すべてバイナリまたは小数)からfloat(double)を構築するマクロまたは関数がありますか? float(double)として表現できますか?与えられた符号、仮数、指数からfloat(double)を構築するマクロまたは関数?

+0

標準的なマクロや関数についてはわかりませんが、作成するのは簡単です。たとえば、仮数が符号付き整数の場合、これにpow(base、exponent)を掛けます。 –

+0

算術演算では結果が変更される可能性があるため、結果のバイナリ表現は指定されたコンポーネントと同じになりません。 – mbaitoff

答えて

12

お探しの機能はldexpです。

+2

+1 http://en.cppreference.com/w/cpp/numeric/math/ldexp – 111111

+1

ldexp(1.0,1024)はinfを返し、ldexp(1.0、-1075)は0.0を返し、ldexp(3.0、 -1075)は、ldexp(4.0、-1075)の上に丸められます。これらは表現可能ではありませんが、NaNは取得されません。 –

関連する問題