我正在寻找一个大概的想法。我知道IEEE浮点或双精度是如何存储的,但我不知道如何精确地乘以它。如何将整数乘以IEEE双精度转换指令?
我的一个想法是将整数存储为double(在浮点寄存器中),然后使用正常的double乘法指令。
当一个整数倍增IEEE IEEE时是否有任何特性?正如在“你必须只乘以指数”或类似的东西?
任何帮助将不胜感激。
我正在寻找一个大概的想法。我知道IEEE浮点或双精度是如何存储的,但我不知道如何精确地乘以它。如何将整数乘以IEEE双精度转换指令?
我的一个想法是将整数存储为double(在浮点寄存器中),然后使用正常的double乘法指令。
当一个整数倍增IEEE IEEE时是否有任何特性?正如在“你必须只乘以指数”或类似的东西?
任何帮助将不胜感激。
您可以乘以2^n的单精度浮点数或双精度浮点数,只需在指数中加n,但对于任何其他乘数值,您也会改变尾数,这显然是非平凡的。
如果您使用的是x86,则可以使用指令FIMUL
,该指令完全符合您的需求。但是,当你处于mips状态时,对于一般情况,你没有比转换和乘数更好的方法。
此http://www.divms.uiowa.edu/~jones/bcd/divide.html可能对您有用,具体取决于您要做什么,您可能不需要IEEE格式的应用程序,记住自己的指数并将整个事情作为尾数。 – 2012-01-03 14:47:34