2012-03-09 40 views
9

是否有任何宏或函数从一个给定的符号,尾数和指数构建的浮子(双)(所有二进制或十进制),要么返回一个有效的float(双)数或返回NaN如果通过输入所指定的数量不可以表示为float(双)?宏或函数从给定的符号,尾数和指数构造浮点数(双精度)?

+0

我不知道任何标准的宏或函数的,但它是很容易创建一个。例如,如果你的尾数是一个有符号的整数,然后乘以pow(基数,指数)。 – 2012-03-09 18:51:59

+0

怀疑任何数学运算都会改变结果,所以结果的二进制表示将不会与给定的组件相同。 – mbaitoff 2012-03-10 05:28:51

回答

12

你要找的功能是ldexp

+2

1 http://en.cppreference.com/w/cpp/numeric/math/ldexp – 111111 2012-03-09 18:54:23

+1

注意ldexp(1.0,1024)返回INF,和ldexp(1.0,-1075)将返回0.0和ldexp(3.0, -1075)将上移到ldexp(4.0,-1075)......它们不可表示(完全),但不会得到NaN。 – 2012-06-22 21:47:32