我想实现从整数到浮点数的映射,但是我的底层知识有点生疏。该映射在本文中进行了描述:
\n\n\n3.2 映射到整数
\n我们可以通过浮点减法来计算预测残差,但这可能会导致下溢,从而导致不可逆的信息丢失,从而无法重建实际值。相反,如[7, 22]中所示,我们将预测的和实际的浮点数 p 和 f 映射到它们的符号-数值二进制\整数表示。在实现signmagnitude\n整数算术的平台上,我们现在可以通过减法简单地计算\n整数残差,但是大多数当前平台\n实现两个\xe2\x80\x99s补码算术。为了解决这个问题,我们通过翻转最高有效位(对于正浮点数)或所有位(对于负浮点数)将符号量表示映射到无符号整数。结果是浮点数到无符号整数的单调映射,该映射保留了具有相同符号和指数的浮点数的差异的排序甚至线性。这种方法也\n类似于[16],但是,如果 p 和 f\n 很接近,但被指数边界分开,那么我们可以通过允许进位从尾数传播到指数而受益,这将被表示为较大的错误预测[16]。
\n
还有一些 C 示例代码,但我不太确定我是否复制了正确的部分:
\ntypedef float F32;\ntypedef int I32;\ntypedef unsigned int U32;\n\nI32 exponentPred = (((U32&)floatnum) & 0x7F800000) >> 23;\nI32 signPred = (((U32&)floatnum) & 0x80000000) == 0x80000000;\nI32 mantissaPred = (((U32&)floatnum) & 0x007FFFFF);\nRun Code Online (Sandbox Code Playgroud)\n所以我的问题是:
\n谢谢,\n Plasido
\n