如何将float转换为十进制整数乘以2的幂?

时间:2015-06-17 14:26:09

标签: floating-point

例如,取3.5625并将其表示为 - > 57 * 2 ^ -4。如果有人能指出我正确的方向,那将非常有帮助。

1 个答案:

答案 0 :(得分:1)

这是一般方法(可能有更聪明或数学方式):

重复乘以2直到它没有更多的十进制分量。获取结果数并乘以2 ^ -n,其中n是到达那里所需的迭代次数。

你的例子:

3.5625
3.5625 * 2              =  7.125
3.5625 * 2 * 2          = 14.25
3.5625 * 2 * 2 * 2      = 28.5
3.5625 * 2 * 2 * 2 * 2  = 57

因此需要4次迭代:

57 * 2^-4