用位运算实现除法

复习一下:

被除数 ÷ 除数 = 商...余数
  1. 累减
      最简单的就是不断地用被除数减去除数,直到被除数小于除数,此时减的次数就是商;

  2. 加权累减
      假设现在要计算A ÷ BAa位的二进制数,Bb位的二进制数:
      (1)将B左移a - b位,变成一个a位的二进制数B'(与A的位数一样);
      (2)如果A大于等于B',则令A = A - B',商累加2的B'位数减去B位数的次方B'右移一位;如果A小于B'B'右移一位;
      (3)如果B'大于等于B,跳到(2);否则,计算结束,此时A即为余数;

另,结果要计算小数的话:
  要求几位小数,给余数乘以10的几次,除以除数,得出的商(高位的0不要丢)就是小数点后的结果;

你可能感兴趣的:(位运算,算法)