二进制 – 如何将十进制数转换为IEEE 754单精度浮点格式? - 代码日志

二进制 – 如何将十进制数转换为IEEE 754单精度浮点格式?

我将如何手动将十进制(10位)数字更改为IEEE 754单精度浮点格式?我明白,它有三个部分,一个标志,一个指数和一个尾数。我只是不完全明白最后两个部分实际上代表什么。
找到小于你的数字的2的最大幂,例如,如果以x = 10.0开始,那么23 = 8,则指数为3.指数被偏移127,这意味着指数将被表示为127 3 =尾数为10.0 / 8 = 1.25。 1是隐式的,所以我们只需要表示0.25,当表示为23位无符号小数时,它是010 0000 0000 0000 0000 0000。正数的符号位为0。所以我们有:

s | exp [130]  | mantissa [(1).25]            |

0 | 100 0001 0 | 010 0000 0000 0000 0000 0000 |

0x41200000

您可以使用简单的C程序来测试表示,例如

#include <stdio.h>

typedef union
{
    int i;
    float f;
} U;

int main(void)
{
    U u;

    u.f = 10.0;

    printf("%g = %#x\n", u.f, u.i);

    return 0;
}
http://stackoverflow.com/questions/2404675/how-do-i-convert-from-a-decimal-number-to-ieee-754-single-precision-floating-poi

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:二进制 – 如何将十进制数转换为IEEE 754单精度浮点格式?