浮点数格式是什么?

浮点数格式是什么?,第1张

为便于软件的移植,浮点数的表示格式应该有统一标准(定义)。1985年IEEE(Institute of Electrical and Electronics Engineers)提出了IEEE754标准。该标准规定基数为2,阶码E用移码表示,尾数M用原码表示,根据原码的规格化方法,最高数字位总是1,该标准将这个1缺省存储,使得尾数表示范围比实际存储的一位。实数 的IEEE754标准的浮点数格式为:

具体有三种形式:

IEEE754三种浮点数的格式参数

类型 存储位数 偏移值

数符(s) 阶码(E) 尾数(M) 总位数 十六进制 十进制

短实数(Single,Float) 1位 8位 23位 32位 0x7FH +127

长实数(Double) 1位 11 位 52位 64位 0x3FFH +1023

临时实数(延伸双精确度,不常用) 1位 15位 64位 80位 0x3FFFH +16383

对于阶码为0或为255(2047)的情况,IEEE有特殊的规定:

如果 E 是0 并且 M 是0,这个数±0(和符号位相关) 如果 E = 2 �6�1 1 并且 M 是0,这个数是 ±无穷大(同样和符号位相关) 如果 E = 2 �6�1 1 并且 M 非0,这个数表示为不是一个数(NaN)。

标准浮点数的存储在尾数中隐含存储着一个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

这里不同的下标代表不同的进制。

公式

在单精度时:

V=(-1)^s*2^(E-126)*M

在双精度时:

V=(-1)^s*2^(E-1022)*M

单精度与双精度的区别:

1、单精度数是指计算机表达实数近似值的一种方式。单精度,也就是 float ,在 32 位机器上用 4 个字节来存储的;而双精度double是用 8 个字节来存储的,这是他们最本质的区别。

2、由于存储位不同,他们能表示的数值的范围就不同,也就是能准确表示的数的位数就不同。

扩展资料

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

双精度浮点数(Double)用来表示带有小数部分的实数,一般用于科学计算,用8个字节(64位)存储空间,其数值范围为1.7E-308~1.7E+308,双精度浮点数最多有15或16位十进制有效数字,双精度浮点数的指数用“D”或“d”表示。类型在汉字的意思是指由各特殊的事物或现象抽出来的共通点;在。NET框架中,类型(type)又被称作组件(component).通常情况下,应用程序既包括我们自己创建的类型,也包括微软和其他一些组织创建的类型。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/355662.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存