100 likes | 208 Views
计算机组成原理第二章. 知识点二:机器层次的浮点数表示. 主讲教师:秦磊华. 问题引入. 如何在有限的机器字长条件下表示更大的数据?. 学习建议. 系统观: 与高级语言程序设计建立联系,关注浮点数对速度的影响,程序设计时要合理选择数据类型;同时与运算方法与运算器设计建立联系; 构造观: 浮点数在机器层次的表示。. E: 阶码位数 , 决定数据的范围. M: 尾数位数 , 决定数的精度. E 1 E 2 E 3 ……E n. M S. E S. M 1 M 2 M 3 M 4 ..M k. N=R e • m.
E N D
计算机组成原理第二章 知识点二:机器层次的浮点数表示 主讲教师:秦磊华
问题引入 如何在有限的机器字长条件下表示更大的数据? 学习建议 系统观:与高级语言程序设计建立联系,关注浮点数对速度的影响,程序设计时要合理选择数据类型;同时与运算方法与运算器设计建立联系; 构造观:浮点数在机器层次的表示。
E: 阶码位数,决定数据的范围 M: 尾数位数,决定数的精度 E1E2E3……En MS ES M1M2M3M4..Mk N=Re•m 是一种把数的范围和精度分别表示的一种数据表示方法; 浮点数的使用场合: 数的表示范围超出了定点数能表示的范围时。 1. 一般格式
24576 示例:在字长为8位,阶码5位,尾数3位,都采用补码数据的浮点数据格式下,实数x =2-2(0.11)的浮点数为 表示范围的对比: a)8位定点数补码数据表示的范围: [-128 , 127 ] b)浮点数据表示时数据范围:[ - 215 *0.11 , 215 *0.11]
E1E2E3……En MS ES M1M2M3M4..Mk 几个关注点 a)如何平衡精确度与数据表示范围之间的关系:相互制约; b)影响软件移植 !
8位偏指数E 23位有效尾数M S 2.IEEE 754格式 单精度 11位偏指数E 52位有效尾数M 双精度 S S为数据的符号位; 指数采用移码, 单精度偏移127,双精度偏移1023,便于浮点数的比较和排序; IEEE754尾数形式为1.XXXXXX,原码形式.但M部分保存的是XXXXXX. 可保留更多的有效数字位, 提高精确度。
应用举例 例1:某IEEE 754单精度某浮点数x的二进制存储格式为 (41360000)16 ,求与其对应的32位浮点表示的十进的值。 解: (41360000)16 = (0 100,0001,0 011,0 110,0 000,0 000,0 000,0 000)2 s=0 ,e=10000010-01111111=00000011=(3)10 1.M=1.011011 则上述浮点数对应的真值为 X=(-1)0× (1.011011)×23 =(11.375)10
3. 数据类型转换应用举例 例2:int、float和double是C语言中常见的三种数据类型,字长分别为32位、32位和64位。分析不同数据类型间发生强制转换时可能发生的结果. intfloat:不会发生溢出,可能有数据被舍入,因为后者数据范围更大,尾数位数肯定少于32位. int或float double:不会发生溢出错误和数据被舍入, double float:可能发生发生溢出错误和数据被舍入; float int:可能发生溢出,舍入甚至向 0方向截断。
知识点二 回顾 浮点数的一般格式与IEEE 754格式; IEEE 754与十进制数之间的转换方法; 深刻理解数据格式转换过程中可能存在的数据溢出和精确度丢失风险。