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

How do you convert float to a decimal integer times a power of 2?

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

这是一般方法(也许有更聪明或更数学的方法):

重复乘以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