提出IEEE浮点标准的目的是为了统一浮点数的表示,在计算机中,浮点数表示了一种可以表示非整数的实数数据类型。由于计算机使用有限的位数来表示数字,浮点数的表示和运算需要考虑精度、溢出、舍入等问题。
在过去,不同的计算机体系结构和编程语言使用了各种不同的浮点数表示方式,这导致了不同计算机之间的数据不可移植性和一致性问题。为了解决这些问题,需要一个通用的浮点数标准,使得不同的计算机和软件可以共享相同的浮点数表示和运算规则。
表示:
用来表示一个数,在单精度浮点格式(float)中,s,exp,frac 分别为1位,8位,23位,得到一个32位的表示,在双精度浮点数(double)中,s,exp,frac 分别为1位,11位,52位,得到一个64位的表示
根据exp的值,可以分为3类不同情况:
1.规格化的值:当exp的位模式既不全为0,也不全为1
exp被解释为使用偏置形式表示的有符号整数,即阶码的值是 E=e-Bias, 其中 e 是无符号数,而 Bias = 2k-1-1。 小数字段 frac 被解释为描述小数值 M =1.xxxx = 1+f,其中 1 不显式表示
2.非规格化的值:当阶码域为全 0 在这种情况下,阶码值是 E=1-Bias,而尾数的值是 M =0.xxxx = f 也就是小数字段的值, 不包含隐含的开头的 1。
3.特殊值:当阶码域为全 1 当小数域全为 0 时,得到的值表示无穷;当小数域为非零时,结果值被称为 NaN。