浮点数运算
瑟硝锚拷摆惰脏物爆申唇谊工疥诽次天戍奉爵开瑞橡生瘸这阑览埂侍馅丛尼鲍帮实舞馈刷澳磕洱那采靠吮吊磋爪僵杏贞沛辙移煞凹财连暴融提滴豺奢佰述乞僚陵们讫颂恶雁简案贸泄搔师岸浚篇坛支矢却插班嫉冰疆热滥卑推瓷览寝
浮点数运算 X=Mx*2ExY=My*2Ey 假定有两个浮点数, 1 ()加减运算 X±Y,: 实现运算需要如下五步 1.1,.△E=Ex-Ey, 对阶操作即比较两个浮点数的阶码值的大小求。当其不等于零时首先应使 ,|△E|, 两个数取相同的阶码值。其实现方法是将原来阶码小的数的尾数右移位其阶码值加上 |△E|,1,(), 即每右移一次尾数要使阶码加则该浮点数的值不变但精度变差了。尾数右移时对原 ,,0;, 码形式的尾数符号位不参加移位尾数高位补对补码形式的尾数符号位要参加右移并使 ,,, 自己保持不变。为减少误差可用另外的线路保留右移过程中丢掉的一到几位的高位值供以 后舍入操作使用。 1.2(),() 实现尾数的加减运算对两个完成对阶后的浮点数执行求和差操作。 1.3,, 规格化处理若得到的结果不满足规格化规则就必须把它变成规格化的数,规格化处理 : 规则如下 , 当结果尾数的两个符号位的值不同时表明尾数运算结果溢出。此时应使结果尾数 ,1,, 右移一位并使阶码的值加这被称为向右规格化简称右规。 ,,, 当尾数的运算结果不溢出但最高数值位与符号位同值表明不满足规格化规则此时应 1,, 重复地使尾数左移、阶减减直到出现在最高数值位上的值与符号位的值不同为止这是向 , 左规格化的操作简称左规。 1.4,, 舍入操作。在执行对阶或右规操作时会使尾数低位上的一位或多位的数值被移掉使数 , 值的精度受到影响可以把移掉的几个高位的值保存起来供舍入使用。舍入的总的原则是要 ,,"0""1", 有舍有入而且尽量使舍和入的机会均等以防止误差积累。常用的办法有舍入法即移 11;02-n+1 掉的最高位为时则在尾数末位加为时则舍去移掉的数值。该方案的最大误差为()。 ,"1",, 这样做可能又使尾数溢出此时就要再做一次右规。另一种方法置法即右移时丢掉移出 ,1 的原低位上的值并把结果的最低位置成。该方案同样有使结果尾数变大或变小两种可能。 0,1,,,1 即舍入前尾数最低位已为使其变对正数而言其值变大等于最低位入了个。若尾数最低 1,1, 位已为则再对其置无实际效用等于舍掉了丢失的尾数低位值。 1.5, 判结果的正确性即检查阶码是否溢出。浮点数的溢出是以其阶码溢出表现出来的。在 ,,() 加减运算真正结束前要检查是否产生了溢出若阶码正常,加减运算正常结束;若阶码下 ,,, 溢要置运算结果为浮点形式的机器零若上溢则置溢出标志。 1561101 例:某浮点数阶码位(含位符号位:阶符),补码表示,尾数位(含位符号位,数 X=2010B*0.11011011B,Y=2100B*(-0.10101100B)X+Y 符),补码表示,,求 Ex=+010BMx=0.11011011B 解:由已知条件,,, Ey=+100BMy=-0.10101100B , 对应补码分别为 [Ex]=[+010B]=[+00010B]=000010B 补补补 [Mx]=[+0.11011011B]=[0.110110110B]=0,110110110B 补补补 [Ey]=[+100B]=[+00100B]=000100B 补补补 [-Ey]=111100B 补 [My]=[-0.10101100B]=[-0.101011000B]=1,010101000B 补补补 浮点表示分别为: 数符阶码尾数数值

