2015-09-25 198 views
-3

有人可以带我通过如何将任何单精度浮点数乘以2的步骤吗?或任何其他常数。数学/步骤混淆了我一点。我知道我可以使用< < 1来乘以2,但我不知道从哪里开始输入一个fp数字。将浮点数乘以2

谢谢!

+3

* 2呢? –

+0

通常,我们将(*)乘以两(2)。你有什么问题?你还有什么要实现的?你想找一个更快的方式吗?如果是这样的话,那么你通常可以将编程优化发挥到极致。一个好的编译器会 - 对于int - 将常量2的一个多重处理转换为左边的移位1. Als程序员 - 现在,不像60和70s - 不需要打扰。 –

+1

我们可能需要更多信息,如语言和目的。因为现在只是* 2似乎是答案,但我非常怀疑你不知道乘法是* ..所以真正的问题是什么?请重新编译 –

回答

1

你可能要求一个黑客快速乘以2?

假设IEEE格式(位23-30),您可以增加FP表示中的指数字段。

  • 这是不可移植的,
  • 要求位域操纵,
  • 不会像0或者非规格化特别号码工作。

可以实现与移动电话相同的效果,就像

x= ldexp(frexp(x, &e), e + 1); 

但可以害怕的功能开销杀死任何好处。