十进制表示成IEEE754标准的32位浮点规格化数 27/64

如题所述

应该有统一标准。1985年IEEE(Institute
of
Electrical
and
Electronics
Engineers)提出了IEEE754标准。该标准规定基数为2,阶码E用移码表示,尾数M用原码表示,根据原码的规格化方法,最高数字位总是1,该标准将这个1缺省存储,使得尾数表示范围比实际存储的一位。实数
的IEEE754标准的浮点数格式为:
具体有三种形式:
表3
IEEE754三种浮点数的格式参数
浮点数
类型
存储位数
偏移值(
)
阶码E的取值范围
真值表达式
数符(s)
阶码(E)
尾数(M)
总位数
十六进制
十进制
短实数
1
8
23
32
7FH
127
1~254
长实数
1
11
52
64
3FFH
1023
1~2046
临时实数
1
15
64
80
3FFFH
16383
1~32766
对于阶码为0或为255(2047)的情况,IEEE有特殊的规定,由于篇幅有限,在此不讨论。
在浮点数总位数不变的情况下,其精度值与范围值是矛盾的,因此一般的机器都提供有单、双精度两种格式。表4中列出了IEEE754单精度浮点数的表示范围,对于双精度只需要修改一下偏移值和尾数位数即可。
表4
IEEE754单精度、双精度浮点数范围
典型范围
浮点数代码


数符(Ms)
阶码(E)
尾数(M)
最大正数
最小正数
绝对值最大的负数
绝对值最小的负数
0
0
1
1
11111110
00000001
11111110
00000001
11………11
00………00
11………11
00………00
标准浮点数的存储格式与图1(b)相似,只是在尾数中隐含存储着一个1,因此在计算尾数的真值时比一般形式要多一个整数1。对于阶码E的存储形式因为是127的偏移,所以在计算其移码时与人们熟悉的128偏移不一样,正数的值比用128偏移求得的少1,负数的值多1,为避免计算错误,方便理解,常将E当成二进制真值进行存储。例如:将数值-0.5按IEEE754单精度格式存储,先将-0.5换成二进制并写成标准形式:-0.510=-0.12=-1.0×2-12,这里s=1,M为全0,E-127=-1,E=12610=011111102,则存储形式为:
1
01111110
000000000000000000000000=BE00000016
这里不同的下标代表不同的进制。
温馨提示:答案为网友推荐,仅供参考
相似回答