全站数据
8 4 2 0 5 8 1

浮点数表示格式

自考名人 | 教育先行,筑梦人生!         
问题更新日期:2024-06-08 17:18:50

问题描述

浮点数表示格式,麻烦给回复
精选答案
最佳答案

为便于软件的移植,浮点数的表示格式应该有统一标准(定义)。

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 = 21 并且 M 是0,这个数是 ±无穷大(同样和符号位相关)

如果 E = 21 并且 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. 单精度浮点数(Single Precision Floating Point):单精度浮点数使用32位二进制位来表示。其中,1位用于表示符号(正负),8位用于表示指数部分,23位用于表示尾数部分。它的浮点数范围和精度相对较小,适合用于节省内存的场景。

2. 双精度浮点数(Double Precision Floating Point):双精度浮点数使用64位二进制位来表示。其中,1位用于表示符号(正负),11位用于表示指数部分,52位用于表示尾数部分。它的浮点数范围和精度较大,适合在需要更高精度的计算中使用。

这两种浮点数表示格式都是基于IEEE 754浮点数标准。根据需要,不同的编程语言和计算机体系结构可能会使用不同的精度和表示格式来存储浮点数。

需要注意的是,由于二进制无法精确表示某些十进制小数,浮点数在进行计算时可能会出现舍入误差。在进行对精度要求较高的计算时,应注意避免由于浮点数表示带来的精度损失。