定点数与浮点数表示
定点数与浮点数据表示
<1> 定点数据表示
可表示定点小数和整数
表现形式:X<sub>0</sub>.X<sub>1</sub>X<sub>2</sub>X<sub>3</sub> ... X<sub>n</sub>(定点小数)
定点小数的表示数的范围(补码为例):-1 x 1-2<sup>n</sup>
定点整数表示数的范围(补码为例): -2<sup>n</sup> x 2<sup>n</sup> - 1
顶点数据表示数的不足:数据表示范围受限
<2> 浮点数据表示
把数的范围和精度分别表示的一种数据表示方法
浮点数的使用场合当数的表示范围超出了定点数能表示的范围时
1. 格式(一般格式)
E: 阶码位数,决定数据的范文
M: 尾数位数,决定数的精度
一般表示格式的不足
数据移植性太差
不同系统可能根据自己的浮点数格式从中提取出不同位数的阶码
2. IEEE 754 格式
指数采用偏移值,其中单精度偏移值为 127,双精度为 1023,将浮点数的阶码值变成非负整数,便于浮点数的比较和排序
IEEE754 尾数形式为 1.XXXXXX, 其中 M 部分保存的是 XXXXXX(1 被隐藏),从而可保留更多的有效位,提高数据表示的精确度
与上述 IEEE754 格式相对应的 32 位浮点数的真值可表示为:N = (-1)<sup>s</sup> × 2<sup>E-127</sup> × 1.M 随 E 和 M 的取值不同,IEEE754 浮点数据表示具有不同的意义
E = 0,M = 0 : 表示机器零
E = 0,M 0 : 则 N = (-1)<sup>s</sup> × 2<sup>-126</sup> × 0.M, 非规格化的浮点数
1 E 254: N = (-1)<sup>s</sup> × 2<sup>E-127</sup> × 1.M, 规格化的浮点数
E = 255, M = 0 : 无穷大的数,对应于 x/0 (其中 x 0)
E = 255, M 0 : N = NaN, 表示一个非数值,对应于 0/0
IEEE754 32 位浮点数与对应真值之间的交换流程
案例
版权声明: 本文为 InfoQ 作者【若尘】的原创文章。
原文链接:【http://xie.infoq.cn/article/b5febb0fe43e393b0d5e6f960】。文章转载请联系作者。
评论