如何将浮点数转换为十进制整数乘以 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
例如取 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