转换为 IEEE 754 单精度浮点格式帮助

Posted

技术标签:

【中文标题】转换为 IEEE 754 单精度浮点格式帮助【英文标题】:Converting to IEEE 754 Single precision floating-point format help 【发布时间】:2011-04-23 11:18:14 【问题描述】:

数字 0.1011 * 2-101 将如何以这种格式表示?

我假设指数为 -101,分数为 1011。

所以这个数字是:

The sign : 1 (since is is -101).
The exponent : 101 in binary, which is: 

    101/2= 50 R1
    50/2 = 25 R0
    25/2 = 12 R1
    12/2 = 6  R0
    6/2 = 3   R0
    3/2 = 1   R1
    1/2 = 0   R1
    101 = 1100101

The fraction : 1011-0000-0000-0000-0000-0000 


So the full number is :

    1 1100101 1011-0000-0000-0000-0000-0000 

【问题讨论】:

【参考方案1】:

关闭。

有效数字字段以1.xxx...的形式进行规范化(在指数范围允许的范围内),因此有效数字为1.011,指数为-102

符号域是数字的符号,不是指数的符号,所以符号为零。通过添加127 的偏差对指数进行编码;所以实际被编码的有偏指数是

-102 + 127 = 25
           = b00011001

最后一个细节是,因为已知有效位字段的前导位是 1,所以从编码的浮点数中省略了它,从而允许增加一位精度。因此,编码后的数字是:

0 00011001 01100000000000000000000
s exponent       significand

或者,十六进制,0x0cb00000

【讨论】:

在这种情况下,指数不会改为 -100 而不是 -102 吗? @Johnny Riley:不;考虑0.1 * 2^0 - 这与1.0 * 2^-1 相同。同样,0.1011 * 2^-101 等于 1.011 * 2^-102

以上是关于转换为 IEEE 754 单精度浮点格式帮助的主要内容,如果未能解决你的问题,请参考以下文章

从 IEEE 754-2008 十进制浮点数据转换为二进制浮点格式

iPhone SDK:NSString NSNumber IEEE-754

将 IEEE754 转换为十进制的方程(标准化形式)

ieee754单精度浮点数 表示方法

IEEE 754标准如何转换?

IEEE-754浮点标准简介