2012-03-09 35 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