在这的文章中使用了一个等式,我不明白:
I是作为整数解释的浮点数的字节表示形式。下面是一个示例:
float x = 3.5f;
unsigned int i = *((unsigned int *)&x);现在我的问题是:
为什么方程是正确的,我在哪里可以读到更多关于这个方程的内容?
发布于 2018-01-12 18:53:37
如您所知,浮点数存储在IEEE 754标准中。以及单个精确浮点的位模式,如以下所示(请参阅详细信息这里):

该数字的值是根据以下公式计算的:

因此,对于32位值,等效的整数是e * L + m.因为指数是从(第23位)开始的,第一部分是m.假设指数用-127存储,则将表达式转换为(e + B)*L + m。
关于L,在m之后,可能有一种假设在本文中可能没有提到。
此外,在这个公式中不考虑sign位。
https://stackoverflow.com/questions/48231407
复制相似问题