计组浮点数的运算

https://www.icourse163.org/learn/HAUST-1001796013#/learn/content?type=detail&id=1214577851&sm=1
MOOC《计算机组成原理》河南科技大学
计组浮点数的运算_第1张图片
这两个数本身是规格化数,Mx和My是尾数,Ex和Ey是阶码。
计组浮点数的运算_第2张图片
基本步骤:

  1. 0操作数检查:用来判断两个操作数中是否有一个为0;如果两个数中有一个为0,结果就等于另一个操作数;
  2. 对阶操作:即比较两个浮点数的阶码值的大小,求ΔE=Ex-Ey,然后将小阶对大阶;
    对齐两数的小数点,使两数的阶码相等,这个过程称作对阶。
    计组浮点数的运算_第3张图片
    为什么是小阶对大阶呢?因为小阶右移会加一,直到等于大阶。左移的话尾数会扩大,尾数扩大可能产生溢出。
    计组浮点数的运算_第4张图片
  3. 尾数进行加或减运算:实现尾数的加减运算,执行两个完成对阶后的浮点数的求和(差)的过程。 计组浮点数的运算_第5张图片
  4. 规格化并进行舍入处理:若得到的结果不满足规格化规则,就必须把它变成规格化数,舍入操作,在执行对阶或右操作时,会使位数地位上的一位或若干位的数值被移掉,使数值精度受到影响,可以把移掉的几个高位的值保存起来供舍入使用。
    首先进行尾数结果的规格化:
    当尾数加/减运算后得到的可能不是规格化数,为了增加有效数字的位数,提高运算速度,必须对结果进行规格化操作
    计组浮点数的运算_第6张图片
    出现溢出,不是真正的溢出
    计组浮点数的运算_第7张图片

浮点数乘除法
计组浮点数的运算_第8张图片
浮点数乘法:
两个浮点数相乘,其乘积的阶码应为相乘两数的阶码之和,其乘积的尾数应为相乘两数的尾数之积
在这里插入图片描述
(1)阶码相加
如果阶码补码表示,解码相加之后无需校正;
当阶码用偏置值为2n次方的移码表示时,阶码相加后要监狱一个偏移量2的n次
如果阶码相加后产生溢出,应另作处理。
(2)尾数相乘
若Mx、My都不为0
则可进行尾数乘法,尾数乘法的算法与前述定点数乘法算法相同。
计组浮点数的运算_第9张图片
计组浮点数的运算_第10张图片
计组浮点数的运算_第11张图片
浮点数的除法:
两浮点数相除,其商的阶码应为相除两数的阶码之差,其商的尾数应为相除两数的尾数之商
在这里插入图片描述计组浮点数的运算_第12张图片
计组浮点数的运算_第13张图片计组浮点数的运算_第14张图片

你可能感兴趣的:(计组浮点数的运算)