单精度单双精度浮点数的IEEE标准格式

如题所述

在现代高级编程语言中,如C语言,通常采用IEEE-754标准来规定浮点数的存储格式。这个标准规定了单精度浮点数占用4字节,双精度浮点数占用8字节。每个数的存储结构由三部分组成:符号位、阶和尾数。单精度浮点数中,阶占用8位,尾数占据24位,而符号位仅占1位。相比之下,双精度浮点数的阶位为11位,尾数位数为53位,同样有1位符号位。



值得注意的是,实际存储的字节数比描述的位数多一位,这是因为尾数部分包括了一个隐藏位。这一位默认为1,用于表示规格化后的浮点数总是大于等于1且小于2,比如1100B,经过规格化后表示为1.1乘以2的三次方,但个位1并不在23位尾数中。阶码则采用移码形式存储,单精度浮点数的偏移量为127,双精度为1023。在存储阶码前,需将偏移量加到实际阶码上。例如,阶为2的三次方在单精度中,移码后为130(82H);在双精度中为1026(402H)。



有两个特殊情况:0.0的表示为全零,无限大数的阶码为全1,尾数部分则全为零。符号位则指示数的正负无穷大状态。



以单精度浮点数为例,如十进制数-12和0.25的规格化、符号、移码阶码和尾数如下所示:



    十进制:-12,0.25
    规格化:-1.1x2^3,1.0x2^-2
    符号:1(负),0(正)
    移阶码:10000010(单精度),01111101(单精度)
    尾数:100000000000000000000000(单精度),000000000000000000000000(单精度)


最后,存储在内存中的字节顺序根据CPU的不同,Intel的CPU采用little endian顺序,而Motorola的CPU则采用big endian顺序。




扩展资料

单精度数,是指计算机表达实数近似值的一种方式。VB中,Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38 。

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜