您好,欢迎访问三七文档
计算机组成原理第三章知识点四:浮点数运算主讲教师:秦磊华问题引入浮点数运算是计算机中重要的运算类型之一,如何实现浮点数的四则运算?学习建议系统观:与数据表示的知识关联,选择合适的数据表示方法,便于浮点法运算方法与运算器设计的简化;通过浮点运算过程理解浮点运算速度慢的原因。培养科学选择数据类型,优化程序设计的习惯。构造观:掌握浮点运算在计算机中的实现方法,并理解浮点运算部件的工作原理。topolgy1.浮点数的规格化为使浮点数的表示具有唯一性并提高数据表示的精确度而提出的概念;规格化浮点数的形式(补码为例):11.0×…×或00.1×…×;需右移规格化的尾数形式:01.×…×或10.××…×,右移规格化只需一次即可,右移时阶码加1;需左移规格化的尾数形式:11.1×…×或00.0×…×,每算术左移一次,阶码减1,直到变成规格化数为止。2.浮点数的加/减运算设有两个浮点数:x=2m×Mx和y=2n×Myxy=2m×(Mx2n-m×My)(mn时)或xy=2n×(2m-nMxMy)(mn时)(1)求阶差并对阶:求阶差,按小阶向大阶看齐的方式对阶;(2)尾数运算:按定点数加/减运算法则进行尾数加/减;(3)结果规格化:执行规格化操作(若为非规格化数);(4)舍入:舍入尾数右移过程中(右规和对阶)移出的1;(5)溢出判断:通过阶码双符号位是否相同。(右规过程中)例1设x=0100.11011011y=2100(0.10101100)求x+y解:先用补码形式表示x和y[X]补=00010,00.11011011[Y]补=00100,11.01010100(1)对阶[E]补=[Ex]补+[-Ey]补=00010+11100=11110将x的尾数右移2位,阶码加2,对阶后的x为:[X]补=00100,00.001101101100.00110110112)尾数的运算:+11.0101010011.10001010113)尾数规格化形如11.10,左规操作一位,阶码减1。[X+Y]补=00011,11.0001010114)舍入:采用0舍1入,在结果尾数的最低位加1。X+Y=–0.111010102011未溢出!3.浮点数的乘/除运算浮点数的乘/除运算可转化成两数阶码的加/减运算和尾数的乘/除运算;尾数的乘/除运算可以转换成加法运算实现;可在浮点运算器中设置两个加法器,一个用于阶码运算,另一个同时进行尾数运算,提高浮点运算速度;最后还需要对结果进行规格化判断与处理;运算过程中阶码加/减、右规和舍入都有可能产生溢出。知识点四回顾浮点数规格化的意义与规格化方法;浮点加/减运算的步骤;浮点运算过程中的溢出;理解浮点数据运算相对较慢的原因,并应用于程序设计的优化。
本文标题:规格化浮点数的形式
链接地址:https://www.777doc.com/doc-4030928 .html