位运算乘除法

1、无符号除法
    I.定点除法:对于n位dividend和divisor
      1)扩充为2n-1位,但是扩充方向不一致,被除数是:000...&dividend;而除数是:divisor&000...
      2)如果dividend>=divisor,则dividend-=divisor;quotient置‘1’,然后divisor向右移动1位;否则,quotient置‘0’,divisor向右移动一位
      3)重复2)共计n次,则所得的quotient依次为高位---低位,最终的dividend即为remainder
2、有符号除法
    首先判断符号位,然后转换为无符号数,按照上述无符号除法I进行计算
3、无符号和无符号乘法
    I.booth乘法:对于n位的multiplicand和multiplier
      1)首先扩充p数组为2n+1位(称为p空间),最后一位为虚位(被记为p[-1],在数组中下标-1是不合法的,只是为了说明这是辅助位),扩充方式为:p[2n-1..0]&p[-1]=000...&multipilier&0;
      2)如果p[0..-1]为“00”或者“11”,则不进行算术运算,仅仅将p向右移动一位;
       如果p[0..-1]为“01”,则p[2n-1..n]+=multiplicand,然后p向右移动一位;
       如果p[0..-1]为“10”,则p[2n-1..n]-=multiplicand,然后p向右移动一位。
      3)重复2)共计n次(此处重复次数忘了,应该是上下浮动一次,可以实验一下)
      4)最终p[2n-1..0]即为所求

posted @ 2016-08-31 11:51  苏怡诞仁  Views(1672)  Comments(0Edit  收藏  举报