加减交替法(不恢复余数法)
前言 加减交替法处理思想是先减后判,如果减余数后发现不够减,则下一步中改为加除数操作。 运算一步加减完成时,遵循的规则 当余数为正时,表示够减,即商上1,在进行下一次商时,将余数(此时为正)左移一位,减去除数。 当余数为负时,表示不够减,即商上0,在进行下一次商时,将余数(此时为正)左移一位,加上除数。 运算时需要双符号补码,所以应先把给定的定点数转换为补码形式,需要注意的是,除数的负数也要转换为双符号补码,方便后面作减法。因为在计算机中减一个数等于加这个数的负数。而补码正是用来做加减法的。 操作的步数n 是由要求的n位商决定的,如果第n步 余数为负,则需增加一步恢复余数,即 +Y ,增加的这一步不移位。 实例练习 题目: X=0.1011 Y=0.1101 用加减交替法求X/Y 解: [X]补 =0.1011 对应的双符号位补码为 00 1011 [Y]补 =0.1101 对应的双符号位补码为 00 1101 [-Y]补 =1.0011 对应的双符号位补码为 11 0011 开始计算,X先减一下Y,即X+[-Y] 我们用双符号补码来做 根据规则,结果若是负数,代表不够减,下一步应该+Y,则 商上0 ,并且在进行下一步之前让余数左移一位。即余数11 1110变为 11 1100 开始下一步 根据规则,结果若是正数,代表够减,下一步应该-Y,(-Y 就是加上-Y) 则 商上1